
大量移動ユーティリティの mmv は、次のファイルの名前を適切に変更できます:
- テキスト
- バー.txt
- テキスト
に:
- 1.txt
- 2.txt
- 3.txt
マニュアルページは興味深いですが、指示に完全には従えません。
Rename all *.jpeg files in the current directory to *.jpg:
mmv '*.jpeg' '#1.jpg'
変数を増加する整数に設定できますか#1
? これが可能であることに疑いはありませんが、bash または他のスクリプトを使用するのも同様に簡単 (または難しい) でしょうか?
簡単にするために、上書きの問題は無視します1.txt
。または、代わりにサブディレクトリにコピーします。
参照:
https://stackoverflow.com/questions/3211595/
答え1
私のシステムにはそのプログラムがありません。実際、以前にそのプログラムについて聞いたことはありません。しかし、このマニュアルページのコピー、プログラムには必要な機能が含まれていないようです。ただし、特に でこれを実行したい場合はmmv
、これを試してみるとよいでしょう。
mmv -an "*.txt" bogus.target > /tmp/mmv.list
は移動を行わず、 を指定しなかった場合の動作を報告するだけです。 は、すべてのテキスト ファイルを 1 つのファイルに追加するように指示します-n
。実際、マニュアル ページには、非常によく似た例 (ただし、オプションなし) が記載されています。ここでは、複数のソース ファイルが 1 つのターゲットに衝突することを許可するように説得するために、これを使用しています。これにより、次のようなファイル が生成されます。mmv
-n
-a
bogus.target
-n
mmv
/tmp/mmv.list
bar.txt -> bogus.target
baz.txt -> bogus.target
foo.txt -> bogus.target
(ファイルは辞書式(アルファベット順)またはディレクトリ順(任意の順序のように見える)でリストされるものと想定しています。他の順序が必要な場合は、それを指定する方法を見つける必要があります。)次に、ファイルを処理して(たとえば、スクリプトを使用して、TBD)、 の出現をbogus.target
、1.txt
、2.txt
などに置き換えます3.txt
。次に、を実行します。
mmv < /tmp/mmv.list
注意: 私はこれを試していません (前述したように、ソフトウェアすら持っていないため)。おそらく、まず重要でないファイルで予行演習を行ったり、すべてのファイルをバックアップしてからこれを実行するとよいでしょう。
また、これは、リンクした質問に対する回答のいくつかと同じくらいの作業量になる可能性が高いことにも注意してください。前述したように、特に でこれを実行したい場合に備えて、この提案を提供していますmmv
。
追記:私の回答(上記)は、これです。