NOTĂ: Aceasta presupune că utilizați convenția de adăugare a ~
sufix la copii de rezervă. Dacă folosiți altceva, trebuie să schimbați găsi
argument în consecință. De exemplu, dacă utilizați, Dacă în loc de ceva de genul .bak
, cel *~
ar trebui să fie în schimb .bak
.
Incearca asta:
Prima alergare
sudo find /sites -type f -name '*~'
și priviți prin rezultat. Dacă vă simțiți confortabil cu ștergerea fișierelor din listă, reintroduceți comanda, dar direcționați ieșirea către rm
ca în
sudo find /sites -type f -name '*~' -print0 | xargs -0 /usr/bin/rm
Acest lucru va face ca shell-ul să se execute rm PATHNAME
pe fiecare PATHNAME din listă.
The *
caracter în bash
este un caracter wildcard. Se va potrivi cu una sau mai multe cazuri de aproape orice caracter. Cea mai notabilă excepție de la această regulă este /
caracter, motiv pentru care se potrivește doar cu un director la un moment dat în exemplul dvs. Utilizare **
pentru a potrivi orice număr de directoare dintr-un nume de cale.
EDITAȚI | ×:
Tocmai am observat că ați listat directorul ca site-uri/...
si nu /site-uri/...
. Trebuie să vă asigurați că a fost transmis primul parametru găsi
este calea plină la director. În caz contrar, va returna doar o eroare.
EDITARE 2:
În timp ce reparam a doua comandă, mi-am dat seama că asta găsi
el însuși poate face ceea ce face rm, dar fără a fi nevoie să efectueze apeluri suplimentare. Acest lucru ar trebui să funcționeze, dar tot nu aș sfătui să o faceți fără a rula mai întâi versiunea de top pentru a vedea exact ce va fi șters. Comanda este
sudo find /sites -type f -name '*~' -delete
Ca sfat final, dacă utilizați găsi
multe și dacă aveți copii de siguranță ale sistemului, vedeți rezultatul dvs. depășit de duplicate. Dacă da, căutați -prună uscată
opțiune. Va păstra orice se potrivește cu argumentul asociat din ieșire.