Quiero enumerar todos los archivos en un directorio que no tiene extensiones.
Por ejemplo:
$ ls
a.txt b c.pdf d e.png
$ ls -someOption
b d
¿Qué comando puedo usar en lugar de ls -someOption
?
.gitignore
una extensión?
Quiero enumerar todos los archivos en un directorio que no tiene extensiones.
Por ejemplo:
$ ls
a.txt b c.pdf d e.png
$ ls -someOption
b d
¿Qué comando puedo usar en lugar de ls -someOption
?
.gitignore
una extensión?
Respuestas:
shopt -s extglob ## enables extended globbing
ls !(*.*) ## matches every file except those containing a dot
Encontrará que al hacer esto le mostrará el contenido de cada directorio en el directorio de trabajo. Si no quieres esto, usa:
ls -d !(*.*)
Puede ponerlo shopt -s extglob
en ~/.bashrc
tenerlo activado cada vez que abra un terminal. Ya hay una línea en el Ubuntu predeterminado ~/.bashrc
(línea 29 para mí en 13.04) que puede descomentar para habilitar esto (y globstar).
Consulte la wiki de Greg para obtener más información sobre las diversas opciones de globbing del shell. Tenga en cuenta que esta es una propiedad del bash shell en lugar del ls
comando, por lo que puede usarla con otros comandos.
Alternativamente, puedes usar
ls --ignore='*.*'
o
ls -I '*.*'
... que es una ls
opción interna , pero extglob se puede aplicar a cualquier comando arbitrario, por lo que es más útil en mi opinión.
ls !(*.*)