同じパーティションで何百万ものファイルを移動するための正しい構文を忘れました。

同じパーティションで何百万ものファイルを移動するための正しい構文を忘れました。

xargsを使用せずに100,000個のjpgを同じディスク/ボリューム/パーティションの正しいディレクトリに移動するコマンドラインガイドラインがあります。奇妙なことは、jpgにスペースと複数のピリオドまたはドットがあることです。例: 「奇妙なイメージ。45 xyz.001 00.78.jpg」。もう一つの珍しい点は、奇妙なパターンがコレクションを参照しているので、何千ものjpgがあり、最後のjpg拡張子の前に追加の数字セットが挿入されていることです。設計決定を誰が下したかはわかりませんが、とにかく私は次のようなものがあります。

for f in ./“wacky image.45 xyz.name.s.00.78”*; do
    mv $f /path/to/destination/;
done

私が何を見逃しているのかよくわかりません。

編集:MacOSターミナルアプリでは、動作はBSDにほぼ似ています。

ベストアンサー1

for f in ./"wacky image.45 xyz.name.s.00.78"*; do
    mv "$f" /path/to/destination/;
done 

(引用符を参照)同じ問題がありました

mv ./"wacky image.45 xyz.name.s.00.78"* /path/to/destination/

すべてワイルドカードです。必要な数百万のファイルは次のとおりです。

find . -iname 'wacky image.45 xyz.name.s.00.78*'  -exec mv "{}"  /path/to/destination/

またはファイルごとのロジックが必要な場合

while read -r F ; do
    mv "$F"  /path/to/destination/
done < <(find . -iname 'wacky image.45 xyz.name.s.00.78*' )

おすすめ記事