GNU/Linux >> Tutoriales Linux >  >> Linux

Globo recursivo?

Me gustaría escribir algo como esto:

$ ls **.py

para obtener todos los nombres de archivo .py, recorriendo recursivamente una jerarquía de directorios.

Incluso si hay archivos .py para encontrar, el shell (bash) da este resultado:

ls: cannot access **.py: No such file or directory

¿Alguna forma de hacer lo que quiero?

EDITAR: Me gustaría especificar que no estoy interesado en el caso específico de ls , pero la pregunta es sobre la sintaxis global.

Respuesta aceptada:

Para hacer globos recursivos en bash, necesitas el globstar característica de bash versión 4 o superior.

Desde la página de manual de bash:

globstar
    If set, the pattern ** used in a pathname expansion context will
    match all files and zero or more directories and subdirectories.
    If the pattern is followed by a /, only directories and
    subdirectories match.

Para su patrón de ejemplo:

shopt -s globstar
ls -d -- **/*.py

Linux
  1. Grep recursivo Vs Find / -type F -exec Grep {}; ¿Cuál es más eficiente/más rápido?

  2. ¿Estadísticas recursivas sobre tipos de archivos en el directorio?

  3. ¿Mkdir recursivo?

  4. Glob que no distingue entre mayúsculas y minúsculas en zsh/bash

  5. Ignorar mayúsculas y minúsculas en glob() en Linux

Tutorial de programación de Linux C Parte 18:funciones recursivas

Descargar dependencias recursivas de un paquete en Ubuntu

Cómo limitar la profundidad del 'árbol' para el listado de archivos recursivos

Administre directorios y permisos de archivos con chmod Recursive

wget recursivo limitado a elementos secundarios de la ruta URL

¿Realmente necesito chmod recursivo para restringir el acceso a una carpeta?