天天看點

ubuntu “Argument list too long”解決方法

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 | 簡書