A.js
特定のディレクトリに、がありB.js
、C.js
bashシェルでSINGLEコマンドラインを記述して、これらのファイルの名前を_A、_B、_Cに変更したいと思います。これどうやってするの?
試しfind -name '*.sh' | xargs -I file mv file basename file .sh
ましたが、機能しません。basenameファイル.shがネストされたコマンドとして認識されません。
どうですか
rename 's/(.*).js/_$1/' *.js
システムの名前変更の構文を確認してください。
上記のコマンドは& などに名前が変更A.js
されます。_A
拡張子を保持したい場合は、以下が役立ちます。
rename 's/(.*)/_$1/' *.js
ファイルの拡張子を保持したい場合は、次のようにします。
$ for f in * ; do mv "$f" _"$f" ; done
ディレクトリ内の各ファイルの名前を取得し、先頭に「_」を追加します。
ディレクトリトラバーサルを使用して、それを行う簡単なネイティブの方法:
find -type f | xargs -I {} mv {} {}.txt
最後に拡張子 .txt を追加して、すべてのファイルの名前を変更します。
そして、並列化によるより一般的なクールな方法:
find -name "file*.p" | parallel 'f="{}" ; mv -- {} ${f:0:4}change_between${f:8}'