GNU/Linux >> Tutoriales Linux >  >> Linux

Haga coincidir todos los archivos en todos los directorios anidados con shell globbing

Específicamente sobre git (gitignore, gitattributes y comandos que toman nombres de archivo):si el patrón no contiene barra inclinada, * los comodines coincidirán profundamente. Si contiene una barra inclinada, git llamará a fnmatch con el FNM_PATHNAME y los comodines simples no coincidirán con las barras. ** no se admite la coincidencia profunda. Tal vez este tipo de coincidencia profunda podría ser más compatible con un nuevo FNM_STARSTAR bandera, y una implementación en glibc, gnulib y otros lugares.


Si desea actuar sobre todos los archivos devueltos por find, en lugar de solo enumerarlos, puede canalizarlos a xargs:

find <directory> -type f | xargs ls

Pero esto es solo para comandos que no tienen una bandera recursiva.


En Bash 4, con shopt -s globstar y zsh puedes usar **/* que incluirá todo excepto los archivos ocultos. Puedes hacer shopt -s dotglob en Bash 4 o setopt dotglob en zsh para que se incluyan archivos ocultos.

En ksh, set -o globstar lo permite. No creo que haya una forma de incluir archivos de puntos implícitamente, pero creo que **/{.[^.],}* funciona.


Linux
  1. Encuentra archivos y directorios en Linux con el comando de búsqueda

  2. Cómo comprimir archivos y directorios en Linux (con ejemplos)

  3. Cómo encontrar un archivo en Linux en todos los directorios recursivamente

  4. Cómo crear rápidamente archivos dentro de directorios anidados en Linux

  5. ¿Eliminar todos los archivos/directorios excepto un archivo?

Cómo excluir archivos y directorios con Rsync

Mantener los archivos y directorios de Linux sincronizados con rsync

Cómo realizar una búsqueda Grep en todos los archivos y en todos los directorios

¿Cómo encontrar todos los archivos que terminan en .rb con Linux?

Listar todos los archivos de imágenes gráficas con find?

¿Encontrar directorios con todos los archivos dentro de más de X?