]Ce ne facem cand avem de sters multe fisiere dintr-un dir?
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 … Foarte OK. 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 asta e o gluma.)
Eroarea care ne loveste e: 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 crapa .
Am gasit ca e timpul sa pun de un script. Si mi-am spus ca deoarece numele fisierelor e format din numere, as putea sa sterg recursiv pe grupe fisierele.
Iata scriptul:
Code:
#!/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