6

私は bash にかなり慣れていないので、これが基本的な質問である場合は申し訳ありません。多数の mp3 ファイルの名前を変更1-してファイル名の先頭に追加しようとしましたが、mv *.mp3 1-*.mp3残念ながら機能しませんでした。そこで、最初にコマンドをテストするために echo を使用して、スクリプトを作成しようとしました。

for f in *.mp3 ; do echo mv \'$f\' \'1-$f\'; done

私が好きなコマンドを出力しているように見えるので、コマンドを次のように変更して、エコーを削除しました

for f in *.mp3 ; do mv \'$f\' \'1-$f\'; done

どちらが失敗しました。次に、次のようにコマンドをパイプしてみました

for f in *.mp3 ; do echo mv \'$f\' \'1-$f\'; done | /bin/sh

これはうまくいきましたが、中央のコマンドが機能しない理由を誰かが教えてくれたら、知りたいです。または、私が望んでいたことを行うよりエレガントなワンライナーがあれば、それも見てみたいと思います。

4

2 に答える 2

8

コマンドを次のように変更する必要があると思います

for f in *.mp3 ; do mv "$f" "1-$f"; done

'file1.mp3'それ以外の場合は、and など(一重引用符を含む)'1-file1.mp3'を渡しますmv

于 2011-05-04T11:58:45.003 に答える
8

ドライラン:

rename -n 's/^/1-/' *.mp3

-nコマンドを実行するのが正しいと思われる場合は削除します。man rename詳細については。

于 2011-05-04T12:03:18.900 に答える