Pipe

‘-t’ 在 mv 命令中有什麼作用?下面的例子

  • July 6, 2016
ls -lrt |grep 'Jun 30th' | awk '{print $9}' | xargs mv -t /destinationFolder

我正在嘗試從某個日期或模式或 createuser 移動文件。如果沒有該-t選項,它就無法正常工作。

有人可以開導xargs -n移動-t命令嗎?

mv手冊頁

  -t, --target-directory=DIRECTORY
         move all SOURCE arguments into DIRECTORY

mv的預設行為是將所有內容移動到最後一個參數中,因此當xargs執行命令時 mv /destinationFolder pipedArgs-t會嘗試將所有內容移動到通過管道傳輸到 xargs 的最後一個 arg 中。-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

引用自:https://unix.stackexchange.com/questions/294291