Situatie
Poate ca unii vor spune rm -rf nume_director
Eu am intalnit o situatie aparte: fisierele nu erau organizate in subdirectoare. Poate unii stiti ca in kern elul de unix, fie el Linux sau FreeBSD, exista o limita pentru numarul de argumente pe care le poate primi o comanda. Astfel, rm -rf * se traduce prin rm -rf fisier1 fisier2. Totul in regula, pana cand numarul de fisiere depaseste maximul numarului de argumente ce poate fi dat unei comenzi. (Bineinteles ca as putea castiga un argument in plus daca as elimina „-rf”, dar evident este o gluma.)
Eroarea care apare acum este: rm: Argument list too long. (error code: 126).
Eu am dat peste problema aceasta incercand sa sterg fisierele dintr-un inbox imap virtual, Maildir/.Trash/cur
Evident ca nici enumerarea directorului nu reuseste, asa ca thunderbird se defecteaza.
Am gasit ca e timpul sa realizez un script. Si mi-am spus ca, in conditiile in care numele fisierelor e format din numere, as putea sa sterg recursiv, pe grupe, fisierele.
Solutie
Iata scriptul:
#!/bin/bash
rec(){
for I in `seq 0 9 `; do
echo $1$I
rm -rf ./$1$I*
[ $? -eq 126 ] && rec $1$I
done
}rec 1198
EOF
Leave A Comment?