Problém
Při pokusu o výpis nebo práci s velkým počtem souborů z příkazového řádku se zobrazí následující chyba:
$ ls -l *.xml | wc -l bash: /bin/ls: Argument list too long 0
$ rm *.xml bash: /bin/rm: Argument list too long
nebo při pokusu o odstranění velkého počtu souborů pomocí příkazu find selže s níže uvedenou chybovou zprávou:
$ find /u01/oracle/apps/fs1/EBSapps/appl/xdo/12.0.0/temp/*.xml -mtime +120 -exec rm -v {} \; bash: /usr/bin/find: Argument list too long
Řešení
Jádro má velký, ale konečný limit pro příkazový řádek a výše uvedené chyby ukazují, že limit byl dosažen.
K vyřešení tohoto problému lze použít xargs, který přijímá seznam názvů souborů ze svého standardního vstupu a spouští na nich příkaz. Můžete použít „najít“ v kombinaci s „xargs“, jak je uvedeno níže:
# find . -type f -name '*.xml' | xargs rm
POZNÁMKA :Výše uvedený příkaz smaže všechny soubory s příponou .xml v aktuálním adresáři bez jakéhokoli potvrzení. Před spuštěním bych vám doporučil provést zálohu potřebných souborů. Vždy je dobré ověřit na zkušebním stroji a zkontrolovat před pokračováním na výrobním stroji.