1

次の質問に関して助けがありました: ID がそのままのバッチ名前変更ファイル

グループ内の特定のファイルの名前を変更する方法の良い例ですが、次のことを行うために使用できる同様のスクリプトがあるかどうか疑問に思っています:

  1. [myprefix_foldername] と [myprefix_filename.ext] を含むルート ディレクトリ内に、ネストされたフォルダーとファイルのグループがあります。
  2. すべてのフォルダファイルの名前を [foldername] と [filename.ext]に変更したい

上記の投稿にあるものと同様の方法を使用できますか?

ありがとう!jml

4

1 に答える 1

1

はい、非常に簡単に、findを使用できます。

find rootDir -name "myprefix_*"

rootDirこれにより、で始まるすべてのファイルとフォルダのリストが表示されますmyprefix_。そこから、バッチの名前変更への短いジャンプです:

find rootDir -name "myprefix_*" | while read f
do
  echo "Moving $f to ${f/myprefix_/}"
  mv "$f" "${f/myprefix_/}"
done

編集: httpIFS ://www.cyberciti.biz/tips/handling-filenames-with-spaces-in-bash.htmlごとに追加

編集2: IFSを支持して削除されましたwhile read

編集3: bosが指摘しているように、Bashのバージョンがまだ気に入らない場合はに変更while read fする必要があるかもしれません。while read -d $'\n' f

于 2011-10-27T17:18:35.883 に答える