![如何在 Linux 上使用 xargs 移动文件?](https://linux22.com/image/1345936/%E5%A6%82%E4%BD%95%E5%9C%A8%20Linux%20%E4%B8%8A%E4%BD%BF%E7%94%A8%20xargs%20%E7%A7%BB%E5%8A%A8%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我正在尝试这个,但没有效果:
ls file_* | xargs mv {} temp/
有任何想法吗?
答案1
在 OS X 上:
ls file_* | xargs -J {} mv {} temp/
在 Linux 上:
ls file_* | xargs -i {} mv {} temp/
答案2
在 mv 中使用 -t“指定目标目录”,它应该可以移动文件*到目标目录 /temp
例如:-#ls -l file* | xargs mv -t /temp
答案3
find . -name "file_*" -maxdepth 0 -exec mv {} temp/ \;
find
ls
比文件数量可能多于 shell 允许的程序参数数量的情况要好。
答案4
另一个解决方案可能是:
for f in file_* ; do
mv $f temp/$f
done
缺点是它会mv
为每个文件分叉一个新进程。