Błąd: -bash: /bin/rm: Argument list too long

Strona Projektu Bash

 

 

Jeżeli pierwszy raz pojawia się w bashowej konsoli magiczny komunikat:

-bash: /bin/rm: Argument list too long

To nic strasznego, aczkolwiek nie usuniemy plików które chcieliśmy, bo przekraczamy limit:

[email protected]:~# getconf ARG_MAX
2097152

Jak więc prosto usunąć pliki ?

Wystarczy wykorzystać prostą pętlę for, a poniżej przykład usunięcia plików zakończonych sufixem .log:

for f in *.log; do rm "$f"; done

Działanie polecenia można najpierw przetestować listując pliki:

for f in *.log; do ls "$f"; done

Polecenie można dostosować by usunąć pliki .jpg, .pdf czy nawet wszystkie jednak tego ostatniego się nie stosuje, bo w przypadku pomylenia katalogu czy wykonania polecenia z historii można usunąć system operacyjny 😉
Powyższe polecenie będzie mało optymalne i szybciej można to zrobić przenosząc katalog, utworząc ponownie, a stary usuwając:


 mv katalog katalog.do.usuniecia
 mkdir katalog
 chown UZYTKOWNIK:UZYTKOWNIK katalog
 rm -rf katalog.do.usuniecia

Oczywiście za potencjalne straty w przypadku złego wykorzystania poleceń, nie odpowiadamy 😉