ディレクトリには、次のファイルとそれ以上のファイルがあります。
- ファイル1.txt
- ファイル1.html
- ファイル1.pdf
- ...
すべてファイル1と交換する必要があります新しいファイル:
- 新しいファイル.txt
- newfile.html
- 新しいファイル.pdf
- ...
私は試した:
for f in $(ls file1*); do mv $f newfile*; done
これは置き換えますみんなファイルとファイル1ファイルとして新しいファイル*。
for f in $(ls file1*); do mv $f ${f/$f/"newfile"}; done
これはまた置き換えますみんなファイルとファイル1ファイルとして新しいファイル。または
find . -name "file1.*" -exec sh -c 'mv I DONT KNOW' _ {} \;
ファイル名の一部を変数に設定して変更する方法がわかりません。
mvを使ってこれを行う最も簡単な方法は何ですか?
ベストアンサー1
Linuxで実行している場合、これを実装する最も簡単な方法は次のものを使用することですrename
(パッケージの一部です)util-linux
。
rename 'file1' 'newfile' file1*
これはあなたが説明することを行います。 3つのパラメータが必要ですrename
。
- ファイル名で探すべきこと
- 代わりに何を使うべきですか?
- 処理するファイルマスク
クイック検索をしましたが、rename
これが最初のヒットケースでした。http://linux.icydog.net/rename.php
修正するシステムに存在しないがrename
存在する場合は、bash
次のようにバッチの名前変更を実行できます。これはrename
上記のものと同じです。
for f in file1*; do mv -v "$f" "${f/file1/newfile}"; done