Bash 使用xargs移动文件

Bash 使用xargs移动文件,bash,shell,Bash,Shell,我想把ls的输出导入head,然后导入mv 我在终端上使用了以下命令,但它不能正常工作 ls -t Downloads/ | head -7 | xargs -i mv {} ~/cso/ 请务必纠正错误。提前谢谢 使用-我喜欢这里: ls -t Downloads/* | head -7 | xargs -I '{}' mv '{}' ~/cso/ 使用-我喜欢这里: ls -t Downloads/* | head -7 | xargs -I '{}' mv '{}' ~/cso/ 众

我想把ls的输出导入head,然后导入mv

我在终端上使用了以下命令,但它不能正常工作

ls -t Downloads/ | head -7 | xargs -i mv {} ~/cso/
请务必纠正错误。提前谢谢

使用-我喜欢这里:

ls -t Downloads/* | head -7 | xargs -I '{}' mv '{}' ~/cso/
使用-我喜欢这里:

ls -t Downloads/* | head -7 | xargs -I '{}' mv '{}' ~/cso/

众所周知,不建议解析
ls
输出。您可以使用
find+sort+cut+head+xargs
pipeline使用这种安全方法:

find . -maxdepth 1 -type f -printf '%T@\t%p\0' |
sort -z -rnk1 |
cut -z -f2 |
head -z -n 7 |
xargs -0 -I {} mv {} ~/cso/

众所周知,不建议解析
ls
输出。您可以使用
find+sort+cut+head+xargs
pipeline使用这种安全方法:

find . -maxdepth 1 -type f -printf '%T@\t%p\0' |
sort -z -rnk1 |
cut -z -f2 |
head -z -n 7 |
xargs -0 -I {} mv {} ~/cso/

为什么它不能正常工作?预期的结果是什么?实际的结果是什么?这是一个糟糕的任务。除了像
less
这样的寻呼机之外,你不应该将
ls
的输出管道化到任何地方。另外,
ls
输出的第一行不是文件名。如果你使用
zsh
,你可以简单地编写
mv Downloads/*(om[0,7])~/cso
。为什么它不能正常工作?预期的结果是什么?实际的结果是什么?这是一个糟糕的任务。除了像
less
这样的寻呼机之外,你不应该将
ls
的输出管道化到任何地方。另外,
ls
输出的第一行不是文件名。如果你使用
zsh
,你可以简单地编写
mv Downloads/*(om[0,7])~/cso
。它不起作用。输出如下:mv:cannot stat'SingleCycleCPUDesign.pdf':无此类文件或目录mv:cannot stat'mips assembly.tar':无此类文件或目录mv:cannot stat'mips_Vol2.pdf':无此类文件或目录mv:cannot stat'MIPS32_QRC.pdf':无此类文件或目录mv:cannot stat'MIPS Assembly.ppt':没有这样的文件或目录mv:cannot stat'L06-SMIPS.pdf':没有这样的文件或目录在
下载/
之后添加*。。刚刚编辑的。如果它回答了你的问题,请把它标记为答案。现在它工作得很好。非常感谢@Exception\u alIt不起作用。输出如下:mv:cannot stat'SingleCycleCPUDesign.pdf':无此类文件或目录mv:cannot stat'mips assembly.tar':无此类文件或目录mv:cannot stat'mips_Vol2.pdf':无此类文件或目录mv:cannot stat'MIPS32_QRC.pdf':无此类文件或目录mv:cannot stat'MIPS Assembly.ppt':没有这样的文件或目录mv:cannot stat'L06-SMIPS.pdf':没有这样的文件或目录在
下载/
之后添加*。。刚刚编辑的。如果它回答了你的问题,请把它标记为答案。现在它工作得很好。非常感谢@Exception_al