如何在没有参数列表太长的情况下移动多个文件?

Awa*_*mad 11 linux ubuntu xargs mv

我试图在我的Ubuntu服务器中将大约700,000个.jpg文件从一个目录移动到另一个目录.我尝试了以下方法:

xargs mv *  -t /var/www/html/
Run Code Online (Sandbox Code Playgroud)

echo (*.jpg|*.png|*.bmp) | xargs mv -t /var/www/html/
Run Code Online (Sandbox Code Playgroud)

echo (*.jpg) | xargs mv -t /var/www/html/
Run Code Online (Sandbox Code Playgroud)

find . -name "*.jpg" -print0 | xargs mv * ../
Run Code Online (Sandbox Code Playgroud)

它们都给我同样的错误:/ usr/bin/xargs:参数列表太长了

我该怎么办?请帮帮我.谢谢 :)

Jef*_*can 20

如果你使用find我会建议你使用该-exec属性.所以你的结果应该是find . -name "*.jpg" -exec mv {} /home/new/location \;.

但是,我建议检查find命令返回的内容,将exec部件替换为:-exec ls -lrt {} \;


小智 5

尝试:

find /path/to/old-directory -type f | xargs -i mv "{}" /path/to/new-directory
Run Code Online (Sandbox Code Playgroud)