質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

Q&A

解決済

1回答

1095閲覧

シェルスクリプトにおいてサブディレクトリの名前を変更したい

nanyakanya

総合スコア44

シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

0グッド

0クリップ

投稿2021/07/29 05:00

source-dir--- |-----file-1 |-----file-2 |-----file-3 |-----folder_dir |----file-4 |----file-5

以上のような構成においてsource-dirで実行してfouder_dir内のfile名を変更したい

コード

#!/bin/sh #ls -1 *.sh folder_dir var=`ls -1 folder_dir` var1=1 echo $var #cd test_dir #mv sample1.txt travel3.txt folder_dir for tmp in $var do message="travel$var1" var1=`expr $var1 + 1` mv $tmp "$message.txt" #echo $tmp done

lsコマンドによってfolder_dir内のファイル名を辞書順で得ることはできたがそれらの名称を変更することができない

聞きたいこと

ファイル名を変更するのはmvコマンドということを調べてわかったが, すべてカレントディレクトリ内のファイル処理のことしかいておらず, サブディレクトリ内のファイル名の処理方法が分からない
cdをすればよいのかといったことも考えたがうまくいかなかった(素人すぎて見当違いな考えかもしれないです)

始めたばかりで考え方やコマンド処理の理解が浅いです. よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

mv コマンドの man を読んでみれば分かりますが、mv コマンドで指定できるディレクトリやファイルは、絶対パスで書いても相対パスで書いても構いません。
※どんなコマンドでもそうですが

なので、サブディレクトリ内のファイルならば、./folder_dir/~ のように(変更前も変更後も)指定してやればいいのです。

※変更後にも同じパスを指定しておかないと、ディレクトリ間移動をしてしまうので注意

投稿2021/07/29 05:04

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nanyakanya

2021/07/29 06:31

解決しました. ありがとうございます! manの方も確認してみます.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問