などのunderscore.~1~
名前を持つ複数のファイルを含むディレクトリがあります。main.js.~1~
index.js.~1~
underscore
ディレクトリとその中のファイルの名前を元の名前などに変更するにはmain.js
?index.js
答え1
(Bashで)最も簡単な方法は、ディレクトリに変更して次のように行うことです。
for i in *.~1~; do mv $i ${i%.~1~}; done
上記のコードはすべてのファイルを繰り返し、*.~1
拡張子(ターゲットとして指定)なしでそのファイルに移動します${i%.~1~}
。シェルのテキスト置換を探します。
ディレクトリで同様の作業を実行できますが、ディレクトリが1つしかない場合は、手動で実行する方が簡単です。
mv underscore.~1~ underscore
答え2
mv
端末では、単にコマンドを使用してフォルダとファイルを移動できませんか?
はい
$ find adir_.~1~/ -ls
10757186 4 drwxrwxr-x 2 saml saml 4096 Oct 14 23:54 adir_.~1~/
10370964 0 -rw-rw-r-- 1 saml saml 0 Oct 14 23:50 adir_.~1~/afile_.~1~
次に、ディレクトリ+ファイルを移動します。
$ mv adir_.~1~/ adir
$ mv adir/afile_.~1~ adir/afile
そして確認してください:
$ find adir/ -ls
10757186 4 drwxrwxr-x 2 saml saml 4096 Oct 15 00:01 adir/
10370964 0 -rw-rw-r-- 1 saml saml 0 Oct 14 23:50 adir/afile
答え3
すべてのファイルとディレクトリの名前を一度に変更するには、次を使用できます。rename
少なくともDebianベースのLinuxディストリビューションでは、このコマンドはパッケージperl
に含まれています。
rename 's/\.~1~$//' */*.~1~ underscore.~1~
最初のパラメータrename
は、実行する置換を記述するPerl正規表現です。後続のパラメータは、作業するファイルの名前です。 1つの呼び出しのみを管理するには、パラメーター・パス拡張が発生した後にそのディレクトリー内のファイル・パスが変更されないように、最後のディレクトリーを指定してください。