Puncte:3

Cum pot șterge toate fișierele dintr-un folder cu nume mai lungi decât X?

drapel ru

Am un folder cu 1000 de fișiere care poartă numele 23123 123r3883 3929388394j f38238d etc. Trebuie să șterg toate fișierele care au o lungime de nume > 9. Cum pot face asta?

drapel hr
Trebuie să fie bash? zsh are niște calificative glob la îndemână pentru acest gen de lucruri
drapel cn
te rog sa folosesti google.https://superuser.com/a/702461/276585 și nu, nu am de gând să fur acolo răspunsul lui Fossie :D
Puncte:4
drapel hr

Puteți potrivi nume de fișiere care constau din cel puțin 10 caractere folosind o expresie globală simplă ??????????*. Deci, cu condiția ca numărul de fișiere să nu fie prea lung, ați putea folosi

echo rm -- ??????????*

Pentru liste de fișiere mai lungi, puteți despărți numele folosind xargs:

printf '%s\0' -- ??????????* | xargs -r0 echo rm

Dacă treci de la bash la zsh, ai putea folosi calificative glob pentru a testa lungimea fiecărui nume de fișier (trecut prin intermediul RĂSPUNS variabil). Un avantaj este că puteți adăuga cu ușurință și alți calificatori, cum ar fi N (echivalentul shell-ului bash nullglob) și . (ceea ce limitează rezultatele la fișiere simple):

echo rm -- *(.Ne:'[[ $#REPLY -gt 9 ]]':)

sau

print -rNC1 -- *(.Ne:'[[ $#REPLY -gt 9 ]]':) | xargs -r0 echo rm

Pentru a face echivalentul în bash ar necesita probabil o buclă, cum ar fi

pentru f în *; do
  [[ -f $f && $#f -gt 9 ]] && echo rm -- „$f”
Terminat

Scoateți ecou odată ce sunteți mulțumit că fișierele potrivite sunt potrivite.

pLumo avatar
drapel in
Sau `find -maxdepth 1 -type f -name "?????????*" -delete`

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.