我想要将mv
最新的文件复制到指定目录。
ls -1t ~/Downloads | head -1 | gsed 's|^|~/Downloads/|g' | xargs -I {} mv {} ~/test/
输出:
mv: rename ~/Downloads/latest.jpg to /Users/home/test: No such file or directory
但以下命令确实有效:
mv ~/Downloads/latest.jpg ~/test/
所以我认为它不起作用的原因是 xargs 命令。
我的环境是MacOS。
当前的问题是它
~
无法通过 xargs 或 mv 扩展,因此您的命令正在寻找~
其中包含文字字符的文件名。更大的问题是尝试解析输出
ls
本质上是不可靠的。使用BashFAQ #99实践来查找最新文件,而无需诉诸
ls -t
:这避免了这个问题,因为
~
在源代码中未加引号的上下文中使用的字符是 shell 语法而不是数据;shell在启动之前~/test
用替换。/home/youruser/test
mv