1. 背景
Linux下使用cp,mv,rm等指令時經常會碰到“Argument list too long”錯誤,這主要是因為這些指令的參數太長,即檔案個數過多。
2. 解決方案
“Argument list too long”這個問題的解決主要會用到兩個指令,find和xargs。
**
2.1 問題:
**要删除test檔案夾下以jpg結尾的檔案。
指令1為:
指令2為:
2.2 問題:
要拷貝test檔案夾下以jpg結尾的檔案到train目錄。
指令1為:
find test/ -name "*.jpg" | xargs -i cp {} train
指令2為:
3. 指令解析
find test/ -name "*.jpg"
是指在test檔案夾下查找名為*.jpg的檔案。
xargs指令是給其他指令傳遞參數的一個過濾器,也是組合多個指令的一個工具。-i會将xargs的内容指派給{}。
-exec參數後面是指執行其後面的指令,-exec以;為結尾,由于各個系統中分号的意義不同,是以用\進行轉義,即;,{}會被find指令的結果替換。
原作:
文章作者:Tyan
部落格:noahsnail.com | CSDN | 簡書