GNU/Linux >> Tutoriales Linux >  >> Linux

el carácter comodín `* ` no puede coincidir con alguna cadena?

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 * .


Linux
  1. Comando ls de Linux - Lista de archivos

  2. Comando de Unix para listar archivos que contienen cadenas pero *NO* contienen otra cadena

  3. Cómo reemplazar una cadena en varios archivos en la línea de comando de Linux

  4. ¿Se puede usar el comando linux cat para escribir texto en un archivo?

  5. Convertir una salida a cadena

Comando Cp en Linux (Copiar archivos)

Comando Rm en Linux

Comando lsof en Linux (10 ejemplos)

Algunas buenas alternativas a du Command

Comando ls en Linux/UNIX

¿Cómo calcular la cantidad de archivos que se pueden pasar como argumentos a algún comando para el procesamiento por lotes?