¿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?
¿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?
Respuestas:
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.
ls -lR
enumera 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 find
comando enumera los archivos de forma recursiva. Puede personalizar su salida, por ejemplo, el siguiente comando imprime permisos como lo ls -l
hace 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 ls
y find
solo 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 --restore
replicar los permisos a otro árbol con los mismos nombres de archivo.
Tu quieres find
para esto.
find some/dir -ls > output.txt