Błąd: -bash: /bin/rm: Argument list too long
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:
root@testnetfs:~# 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 😉
2 comments on “Błąd: -bash: /bin/rm: Argument list too long”
find . -name „*.log” -delete
😉
Fakt szybsze, tylko
"
jest do zmiany na'
😉