在bash命令行中,我必須找到名稱與我的系統中某個特定模式相匹配的所有zip文件,然後將它們解壓縮到我的目錄中。xargs oneliner解壓縮文件
我想組織子文件夾中的解壓縮文件,我想選擇我的子文件夾名稱與基於原始zip文件名稱(不使用完整路徑)的自定義命名約定。
我知道爲週期的工作,無論如何,因爲我現在正在學習xargs,我想知道我是否可以在xargs oneliner中做同樣的事情;類似於:
locate -r "<zipped files regex>" | xargs -i -t "foldername=$(echo {} | sed 's/.*\///'); mkdir -p $folderName; unzip {} -d $folderName"
我得到這個消息:
foldername={}; mkdir -p ; unzip {} -d
xargs: foldername={}; mkdir -p ; unzip {} -d : No such file or directory
你能幫我做工作?
謝謝!
當前命令的問題究竟是什麼?另外,您是否可以提供一個來自{}>的
Xargs將所有內容傳遞給一個zip命令,zip一次只能處理一個zip文件,因此您應該使用for-loop或'find ... -exec'。 –
@SamiLaine好點,但'xargs'有'-n'('--max-args')選項。儘管如此,使用帶'-exec'的'find'更直接。 –