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
?
.gitignore
un'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
?
.gitignore
un'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 extglob
tuo ~/.bashrc
per attivarlo ogni volta che apri un terminale. C'è già una linea ~/.bashrc
nell'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 ls
comando, quindi puoi usarla con altri comandi.
In alternativa, puoi usare
ls --ignore='*.*'
o
ls -I '*.*'
... che è ls
un'opzione interna , ma extglob può essere applicato a qualsiasi comando arbitrario e quindi è più utile secondo me.
ls !(*.*)