ls -lrt |grep 'Jun 30th' | awk '{print $9}' | xargs mv -t /destinationFolder
我正在尝试从特定日期或模式或创建用户移动文件。如果没有该选项,它就无法正常工作-t
。
有人可以解释一下xargs -n
移动-t
命令吗?
答案1
从mv
手册页
-t, --target-directory=DIRECTORY
move all SOURCE arguments into DIRECTORY
mv
的默认行为是将所有内容移至最后一个参数,因此在xargs
执行命令 时mv /destinationFolder pipedArgs
,它-t
会尝试将所有内容移至通过管道传送到 xargs 的最后一个参数中。使用 时,-t
您明确表示将其移动到此处。
从xargs
手册页
-n max-args
Use at most max-args arguments per command line. Fewer than max-args arguments will be used if the size (see the -s option) is exceeded, unless the -x option is given, in which case xargs will exit.
通常xargs
会将所有参数一次传递给命令。例如
echo 1 2 3 4 |xargs echo
1 2 3 4
执行
echo 1 2 3 4
尽管
echo 1 2 3 4 |xargs -n 1 echo
执行
echo 1
echo 2
echo 3
echo 4