1 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊
請(qǐng)注意,以上僅由循環(huán)$file
設(shè)置,即在cmdline中,您僅使用了循環(huán)中的最后一個(gè)剩余值。for file in ... ; do ... ;done
xargs
要考慮的一些事情:
需要分別處理每個(gè)文件=>使用
xargs -l1
(每處理1行)。需要分開(kāi),
DIR/FILENAME
因?yàn)樗璧拿铑愃朴凇?cp $ DIR / $ FILENAME $ DIR / prefix-01- $ FILENAME”(以及前綴02),find ... -printf "%h %f\n"
為此對(duì)于每一行,都需要做一些事情(前綴01,02)=>通過(guò)以下方式使用腳本
sh -c '<scriptlet>'
最好
prefix-0?-*.jpg
從中跳過(guò)文件find
,以便能夠在不“累積”副本的情況下重新運(yùn)行文件
可能的實(shí)現(xiàn)方式是:
find . -type f \( -iname "*.jpg" ! -iname "special-*.jpg" ! -name "prefix-0?-*.jpg" \) -printf "%h %f\n" | \xargs -l1 sh -c 'cp -v "$1/$2" "$1/prefix-01-$2"; cp -v "$1/$2" "$1/prefix-02-$2"' --
在每行xargs
運(yùn)行時(shí)sh -c '<scriptlet>' -- DIR FILE
,腳本將分別正確評(píng)估$1
和$2
。
--jjo
PS:類Unix系統(tǒng)中的目錄分隔符是/
:)
[更新:已固定為%f
代替%P
,如以下評(píng)論所述]
添加回答
舉報(bào)