2020/10/23: Die Lösung für "Argumentliste zu lang" wurde beim Ausführen des Befehls zip unter Linux gefunden

Probleme aufgetreten:

   `执行zip命令碰到"Argument list too long"`

Intuitive Problembeschreibung:

Bei Verwendung von cp-, mv-, rm-, zip- und anderen Befehlen unter Linux tritt häufig der Fehler "Argumentliste zu lang" auf. Dies liegt hauptsächlich daran, dass die Parameter dieser Befehle zu lang sind, dh zu viele Dateien vorhanden sind.

Lösung:

# 方法一:
find dir/ -name "*.bin" | xargs -i zip aa.zip {
    
    }
# 方法二:
find dir/ -name "*.bin" -exec zip aa.zip {
    
    } \;

Wo dir/ist die Adresse des Quellordners?

"*.bin"Ist der Name der Quelldatei;

xargsEin Filter für die Parameter , um andere Befehle vorbei in dem Befehl in Methode ist auch ein Werkzeug zum Kombinieren mehrerer Befehle, der Inhalt -iwird xargszugewiesen werden {}.

Der -execspätere Parameter von Verfahren II wird hinter dem Befehl -execbis zum ;Beenden ausgeführt, da jedes System ein anderes Semikolon hat, daher ist das \Escape, d. H. ;\Zusätzlich während der Operation {}, finddas Ergebnis des Ersetzungsbefehls.

In ähnlicher Weise lauten die Befehle für rm und cp wie folgt:

# 删除文件夹下以bin结尾的文件
# 方法一:
find dir/ -name "*.bin" | xargs -i rm {
    
    }
# 方法二:
find dir/ -name "*.bin" -exec rm {
    
    } \;
# 拷贝文件夹下以bin结尾的文件到目标文件目录下
# 方法一:
find dir/ -name "*.bin" | xargs -i cp {
    
    } dir1
# 方法二:
find dir/ -name "*.bin" -exec cp {
    
    } dir1 \;

Problem

Die obige Methode löst das Problem, aber die Verarbeitungsgeschwindigkeit ist für eine große Anzahl von Dateien immer noch langsam

Referenz für diese Lösung: "Argumentliste zu lang" beim Ausführen von zip-, cp-, rm- und anderen Befehlen unter Linux

Ich denke du magst

Origin blog.csdn.net/weixin_43624728/article/details/109239694
Empfohlen
Rangfolge