如何在 Linux 上使用 xargs 移动文件?

如何在 Linux 上使用 xargs 移动文件?

我正在尝试这个,但没有效果:

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/ \;

findls比文件数量可能多于 shell 允许的程序参数数量的情况要好。

答案4

另一个解决方案可能是:

 for f in file_* ; do
   mv $f temp/$f
 done

缺点是它会mv为每个文件分叉一个新进程。

相关内容