GNU/Linux >> Linux Esercitazione >  >> Linux

`ls -d *[!e]*` Visualizza tutti i file invece di omettere tutti i file che contengono una E?

ls -d *e* stampa tutti i file contenenti una "e" da qualche parte al suo interno. Ma il contrario, ls -d *[!e]* non sembra funzionare. Perché esattamente?

è perché ls accetta * come argomento ed espande tutti i file?

Capisco che posso fare:ls -d !(*e*) (in Bash con extglob set o in ksh).

Risposta accettata:

Quello che sta effettivamente facendo quel glob è abbinare un numero qualsiasi di caratteri, quindi un singolo carattere diverso da una e, quindi un numero qualsiasi di caratteri. Corrisponderà a qualsiasi file con un nome che non sia composto interamente da e.


Linux
  1. Decomprimere tutti i file in una directory

  2. collegamento simbolico:trova tutti i file che si collegano a questo file

  3. Il comando 'ls -d' non visualizza le directory. C'è un modo per fare in modo che "ls" visualizzi solo le directory invece di file e directory?

  4. Copia di tutti i file all'interno delle sottodirectory e rinomina invece di sovrascrivere

  5. grep per trovare i file che contengono una stringa lunga più di x caratteri?

Ottenere tutti i file che sono stati modificati in una data specifica?

Come trovare tutti i file che non contengono una stringa di testo?

MU Music Player:un lettore che ricorda tutta la tua musica

Sposta tutti i file tranne uno

Nessuna variabile DISPLAY X11 - cosa significa?

Come faccio a visualizzare i nomi dei file che contengono due caratteri e uno di essi è c?