varios tamaño sintaxis por otro mover listar ejemplos directorio copiar contenido comandos comando cambiar basicos archivos archivo linux bash shell

sintaxis - listar archivos por tamaño linux



Coincidir todos los archivos en todos los directorios anidados con shell globbing (6)

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

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

¿Hay alguna forma de usar shell Globbing para identificar directorios anidados?

así que si tengo dir / dir1 / dir2 / dir3 / dir4 / dir5 / ... y tengo archivos debajo de todos ellos, ¿cuál es el patrón de globbing equivalente para que coincida con todos los archivos de todos los directorios, similar a - por ejemplo - ls -R


Específicamente sobre git (gitignore, gitattributes y comandos que toman nombres de archivos): si el patrón no contiene una barra, los comodines * coincidirán en profundidad. Si contiene una barra, git llamará a fnmatch con el indicador FNM_PATHNAME y los comodines simples no coincidirán con las barras. ** para emparejar profundo no es compatible. Tal vez este tipo de comparación profunda podría ser más ampliamente compatible con un nuevo indicador FNM_STARSTAR y una implementación en glibc, gnulib y otros lugares.


No hay manera de hacer esto con Vanilla Bash, sin embargo, la mayoría de los comandos aceptan una opción -R o --recursive para decirles que desciendan a los directorios.

Si simplemente desea enumerar todos los archivos ubicados en cualquier lugar dentro de un directorio o sus subdirectorios, puede usar find .

Para buscar recursivamente archivos ( -type f ) con un directorio dado:

find <directory> -type f


Puedes intentar:

**/*.*

Sin embargo, ignorará los archivos ocultos (como los archivos .git ). A veces es un salvavidas.

Lea más en: ¿Qué se expande recursivamente a todos los archivos en el directorio actual? en SO


Puedes usar el árbol, se mostrarán todas las carpetas recursivamente.

tree <path>


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

find <directory> -type f | xargs ls

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