Como una extensión a la respuesta de Shaido, me gustaría dar una explicación de por qué el -a
la opción no funcionará aquí:
El ls
el comando no procesar comodines. El intérprete de línea de comandos realiza este paso:
Si escribe la línea de comando "mycommand *.c
" el intérprete de línea de comando primero reemplazará la cadena comodín "*.c
" por la lista de archivos coincidentes y luego ejecute la línea de comando resultante:
mycommand a.c file.c test.c
El intérprete de línea de comandos funciona de la misma manera para todos los comandos, por lo que no puede saber que -a
significa "incluidos los archivos ocultos" en el caso de ls
comando (mientras que -a
tiene un significado totalmente diferente para otros comandos)...
Los archivos que comienzan con un punto están ocultos de las listas de archivos de forma predeterminada. La forma más fácil de hacer coincidir ese tipo de archivos sería poner un punto al principio de la expresión. Sin embargo, esto solo coincidirá con los archivos que comienzan con .
.
ls -al .*.swo
La alternativa es configurar el dotglob
antes de ejecutar el comando, luego los archivos que comienzan con .
será incluido.
shopt -s dotglob
Agrégalo a tu ~/.bashrc
para establecerlo por defecto.
Tenga en cuenta que establecer dotglob
puede conducir a resultados no deseados cuando se usa el shell bash, ya que tanto .
(directorio actual) y ..
(directorio principal) aparecerá al usar *
. Con dotglob
establecer, nunca intenta usar rm -R *
.