Voglio elencare tutti i file in una directory che non ha estensioni.
Per esempio:
$ ls
a.txt b c.pdf d e.png
$ ls -someOption
b d
Quale comando posso usare invece di ls -someOption?
.gitignoreun'estensione?
Voglio elencare tutti i file in una directory che non ha estensioni.
Per esempio:
$ ls
a.txt b c.pdf d e.png
$ ls -someOption
b d
Quale comando posso usare invece di ls -someOption?
.gitignoreun'estensione?
Risposte:
shopt -s extglob ## enables extended globbing
ls !(*.*) ## matches every file except those containing a dot
Scoprirai che ciò ti mostrerà il contenuto di ogni directory nella directory di lavoro. Se non vuoi questo, usa:
ls -d !(*.*)
Puoi inserire il shopt -s extglobtuo ~/.bashrcper attivarlo ogni volta che apri un terminale. C'è già una linea ~/.bashrcnell'Ubuntu predefinito (linea 29 per me il 13.04) che puoi rimuovere il commento per abilitare questo (e globstar).
Vedi la wiki di Greg per maggiori informazioni sulle varie opzioni di globbing della shell. Nota che questa è una proprietà della shell bash piuttosto che del lscomando, quindi puoi usarla con altri comandi.
In alternativa, puoi usare
ls --ignore='*.*'
o
ls -I '*.*'
... che è lsun'opzione interna , ma extglob può essere applicato a qualsiasi comando arbitrario e quindi è più utile secondo me.
ls !(*.*)