Puncte:2

Cum să eliminați directoarele care au numere ca nume de fișiere în Ubuntu folosind linia de comandă?

drapel in

Am un director în care există subdirectoare care au numere ca directoare. De exemplu, am un director părinte Test acum am niște subdirectoare precum 1,2,3,4,5,6,7. Acum am o variabilă local exportată, cum ar fi export a=3. Vreau să șterg directoarele care sunt peste sau egal cu $a și sub sau egal cu $a+3, Deci vreau să șterg fișierele 4,5. Cum pot realiza asta în Ubuntu 18.04.6 LTS.

am incercat rm -rf {$a..$($a+3)}, nu a mers, am incercat multe alte lucruri dar nu am reusit.

David avatar
drapel cn
Chiar nu are nimic de-a face cu sistemul de operare. Întrebarea este cum să faci asta într-un script sau în linia de comandă.
Space Impact avatar
drapel in
@David unde ar fi locul potrivit pentru a posta asta? Ai putea te rog să sugerezi?
David avatar
drapel cn
Este bine să fii aici, fiind clar că nu este o problemă cu sistemul de operare. Comanda sau scriptul ar fi același pe un Linux.
mchid avatar
drapel bo
@David Ai putea spune asta despre aproape orice întrebare de aici. Dacă folosesc Ubuntu, ar trebui să fie pe subiect.
mchid avatar
drapel bo
Vă rugăm să includeți versiunea de Ubuntu pe care o utilizați. Mulțumiri.
Space Impact avatar
drapel in
@mchid a adăugat versiunea Ubuntu pe care o folosesc.
James S. avatar
drapel de
Probabil că veți avea mai mult noroc dacă puneți această întrebare într-un loc mai general, deoarece nu este o întrebare despre Ubuntu. încercați: https://unix.stackexchange.com/
bac0n avatar
drapel cn
Puteți utiliza doar caractere întregi sau unice în interiorul unei expresii secvențe, extinderea acoladei este efectuată înaintea oricărei alte extinderi, nu va exista nicio interpretare a textului între acolade și extinderea acoladelor formată incorect rămâne neschimbată. Totuși, puteți face `eval rm {$a..$((a+2))}`.
Puncte:2
drapel cn

O solutie posibila:

rm -r $(seq $a $((a+3)))

(Cu condiția să spui cu adevărat ceea ce ai ilustrat cu exemplul de cod, adică directoarele de mai sus sau egal cu $a si sub sau egal cu $a+3, în loc de ceea ce ați scris în text, „mai sus >$3 dar mai jos <$3+2".

Space Impact avatar
drapel in
A funcționat, mulțumesc pentru răspuns. Voi edita intrebarea.
Space Impact avatar
drapel in
Cum să eliminați tot ceea ce este sub sau egal cu `$a-1`, dar nu cunoașteți cel mai mic număr cu un director?
Tilman avatar
drapel cn
Pur și simplu `rm -rf $(seq 1 $((a-1)))`. Va șterge directoarele existente, iar opțiunea `-f` va suprima mesajele de eroare despre cele inexistente.
Puncte:0
drapel gb

Puteți utiliza următoarea metodă pentru a elimina foldere sau fișiere.

  1. Trimiteți rezultatul folderului respectiv într-un fișier text ls >> text.txt

  2. Editați fișierul text.txt pentru a elimina toate acele intrări pe care nu doriți să le eliminați.

  3. emite comanda sudo rm -r -i $(cat text.txt). Utilizare -i marcați dacă doriți ca procesul să fie interactiv.

  4. Când eliminați fișiere, nu utilizați -r steag.

Această metodă ar funcționa acolo unde folderele pe care doriți să le eliminați nu sunt în ordine consecutivă.

Cyrus avatar
drapel cn
Aici mi se face pielea de găină. Vă rugăm să rețineți: [De ce *nu* parse `ls`?](http://unix.stackexchange.com/questions/128985/why-not-parse-ls)
AjayC avatar
drapel gb
Mulțumesc, nu cred că am abilitățile necesare pentru a înțelege pe deplin complexitățile/problemele cu comanda ```ls``` așa cum este explicat în postare. Sincer vorbind, nu am văzut nume de fișiere atât de complicate sau nume de director.

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.