Lista recursiva de archivos con nombres de archivos, nombres de carpetas y permisos

9

¿Hay alguna forma de que pueda enumerar archivos escribiendo un comando en el shell que enumera todos los nombres de archivos, nombres de carpetas y sus permisos en CentOS?

usuario1038814
fuente
Hola, gracias por la respuesta. Sí, por ejemplo, si tengo la siguiente estructura: Carpeta A> Archivo 1, Archivo 2, Carpeta AA [Archivo AA1, Archivo AA2], etc., por lo que deseo enumerar todas las carpetas y todos los archivos dentro de estas carpetas junto con sus permisos en un Archivo de texto. ¿Espero que tenga sentido?
user1038814

Respuestas:

11

Eche un vistazo al árbol , puede que tenga que instalarlo primero. El árbol predeterminado no muestra permisos, para mostrar los permisos al lado del archivo ejecutado

tree -p

que enumerará recursivamente todas las carpetas y directorios dentro del directorio actual, incluidos los permisos.

Ulrich Dangel
fuente
9

ls -lRenumera los contenidos de directorios de forma recursiva. La salida es difícil de procesar automáticamente, pero para la navegación manual puede ser buena porque es con lo que está familiarizado.

El findcomando enumera los archivos de forma recursiva. Puede personalizar su salida, por ejemplo, el siguiente comando imprime permisos como lo ls -lhace antes de cada nombre de archivo:

find -printf '%M %p\n'

Esta salida puede procesarse mecánicamente si no hay nuevas líneas en los nombres de sus archivos. Si reemplaza \n(nueva línea) por \000(byte nulo), puede procesar la salida con herramientas que admiten registros separados por nulos.

Ambos lsy findsolo imprimen los permisos tradicionales de Unix, no las listas de control de acceso. Para obtener una lista recursiva de todos los permisos de archivo, incluida la información de ACL, ejecute

getfacl -R .

La salida puede procesarse mecánicamente (los caracteres especiales se ordenan); en particular, se puede alimentar para setfacl --restorereplicar los permisos a otro árbol con los mismos nombres de archivo.

Gilles 'SO- deja de ser malvado'
fuente
5

Tu quieres findpara esto.

find some/dir -ls > output.txt
Ignacio Vazquez-Abrams
fuente
-1

lses un comando para enumerar archivos de computadora en

ls -lelementos de lista de Unix en el directorio
ls -Rrecursivamente

ls -lR
Abhi
fuente
Esto estaba en la respuesta de Gilles. Además, su explicación de ls -lno explica qué -les en absoluto.
jesse_b