Ubuntuサーバーで、約700,000個の.jpgファイルをあるディレクトリから別のディレクトリに移動しようとしています。私は以下を試しました:
xargs mv * -t /var/www/html/
そして
echo (*.jpg|*.png|*.bmp) | xargs mv -t /var/www/html/
そして
echo (*.jpg) | xargs mv -t /var/www/html/
そして
find . -name "*.jpg" -print0 | xargs mv * ../
そして、それらはすべて同じエラーを出します:/ usr/bin/xargs:引数リストが長すぎます
私は何をすべきか?私を助けてください。ありがとう:)
find
を使用する場合は、-exec
属性を使用することをお勧めします。したがって、結果はfind . -name "*.jpg" -exec mv {} /home/new/location \;
になります。
ただし、find
コマンドを使用して、exec
の部分を-exec ls -lrt {} \;
に置き換えて、何が返されるかを確認することをお勧めします。
試してください:
find /path/to/old-directory -type f | xargs -i mv "{}" /path/to/new-directory
あなたが試したかもしれません:
for f in *.jpg do;
mv -tv $f /var/www/html/
done
for f in *.png do;
mv -tv $f /var/www/html/
done
for f in *.bmp do;
mv -tv $f /var/www/html/
done
また、注意深く読んでください xargs(1) ;私はそれを強く疑っています
find . -name "*.jpg" -print0 | xargs -n 1000 -I '{}' mv '{}' ../
あなたのために働くべきです
最後に、 rename(1) についてさらに学びます。それはおそらく仕事には十分です。