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.