ファイル拡張子のないファイルを含むディレクトリとサブディレクトリがいくつかあります。.jpg
これらのディレクトリに含まれるすべてのファイルに追加したいと考えています。ファイル拡張子を変更するための bash スクリプトを見たことがありますが、追加するだけではありません。また、再帰的である必要があります。誰か助けてもらえますか?
91815 次
6 に答える
69
これにより、拡張子のないファイルが検索され、.jpg が追加されます
find /path -type f -not -name "*.*" -exec mv "{}" "{}".jpg \;
于 2009-07-10T09:27:03.027 に答える
9
これは少し遅れていますが、これまでのものよりも優れた解決策 (おそらく読みにくいかもしれませんが) を追加すると思いました:
find /path -type f -not -name "*.*" -print0 | xargs -0 rename 's/(.)$/$1.jpg/'
通常、このパターンを使用するfind | xargs
と、ファイルごとに新しいプロセスをフォークする必要がないため、実行がより効率的になります。
これには、従来の名前変更ではなく、Debian フレーバーのディストリビューション (別名 prename) に見られる名前変更のバージョンが必要であることに注意してください。ただし、これはほんの小さな perl スクリプトなので、上記のコマンドをどのシステムでも簡単に使用できます。
于 2009-07-14T03:51:57.533 に答える
4
このような、
for f in $(find . -type f); do mv $f ${f}.jpg; done
スペースで区切られたファイル名が
あるとは思っていません。その場合、名前を少し処理する必要があります。
他のディレクトリからコマンドを実行する場合は、を
に置き換えることができます。find .
find /target/directory
于 2009-07-10T09:07:15.763 に答える
0
rename
拡張子なしでファイルの名前を変更できるかどうかわかりません(私は現在Windows 7を使用しています)
于 2009-07-10T09:28:44.363 に答える