我正在嘗試編寫一個腳本,該腳本使用find和xargs將大文件夾中的舊文件存檔。這是該行:xargs sh -c跳過第一個參數
find /tmp/messages/ -mtime +9 -print0 | xargs -x -t -0 -n 1000 sh -c 'tar rPf /tmp/backup.tar "[email protected]" && rm -f "[email protected]"; sleep 1 && echo Finished one loop: $(date +"%T")'
劇本大多是工作,但它每個命令爲1000個文件運行時將跳過第一個文件,我似乎無法找出原因。
下面是另一個例子(我試過玩弄簡單的命令來看看會發生什麼:
如果我只用回聲和xargs的,我可以運行有效的一個命令:
$ echo a b c d e f| xargs -n 2 echo "[email protected]"
a b
c d
e f
$ echo a b c d e f| xargs -n 3 echo "[email protected]"
a b c
d e f
另反之,如果我想我每次打印每組時間睡覺,我添加SH -c添加一串命令:
$ echo a b c d e f| xargs -n 2 sh -c 'echo "[email protected]"; sleep 1;'
b
d
f
$ echo a b c d e f| xargs -n 3 sh -c 'echo "[email protected]"; sleep 1;'
b c
e f
見的第一個項目是如何跳過
關於可能會發生什麼的任何想法?
在此先感謝!如果您需要任何額外的信息,請告訴我,我很樂意提供。
看看'-c'選項,https://linux.die.net/man/1/bash – Inian