GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo enumero archivos con rutas completas en Linux?

Utilice el find dominio. De forma predeterminada, enumerará de forma recursiva todos los archivos y carpetas que descienden de su directorio actual, con la ruta completa (relativa).

Si desea la ruta completa, use:find "$(pwd)" .

  • Si desea restringirlo solo a archivos o carpetas, use find -type f o find -type d , respectivamente.
  • Si desea que se detenga en una cierta profundidad de directorio, use find -maxdepth 2 , por ejemplo.

Lea Finding Files para obtener un manual extenso sobre GNU find , que es el predeterminado en Linux.


$ pwd
/home/victoria

$ find $(pwd) -maxdepth 1 -type f -not -path '*/\.*' | sort
/home/victoria/new
/home/victoria/new1
/home/victoria/new2
/home/victoria/new3
/home/victoria/new3.md
/home/victoria/new.md
/home/victoria/package.json
/home/victoria/Untitled Document 1
/home/victoria/Untitled Document 2

$ find . -maxdepth 1 -type f -not -path '*/\.*' | sed 's/^\.\///g' | sort
new
new1
new2
new3
new3.md
new.md
package.json
Untitled Document 1
Untitled Document 2

Notas:

  • . :carpeta actual
  • quitar -maxdepth 1 para buscar recursivamente
  • -type f :busca archivos, no directorios (d )
  • -not -path '*/\.*' :no devolver .hidden_files
  • sed 's/^\.\///g' :eliminar el ./ antepuesto de la lista de resultados

Para completar, el ls -lR / El comando enumerará el nombre de cada archivo, el tipo de archivo, los bits de modo de archivo, la cantidad de enlaces duros, el nombre del propietario, el nombre del grupo, el tamaño y la marca de tiempo de cada archivo (para el que tiene permiso de acceso) desde el directorio raíz hacia abajo. (l es para una lista larga, es decir, toda esa información, R es recurrir a directorios, / comienza en la raíz del sistema de archivos).

Hay una serie de parámetros para acercar la información de salida a dir /S /A , pero debo admitir que no sé cómo traducir el /B .

Para obtener información útil, intentaría:ls -lAFGR --si /

donde

  • l =lista larga (como se mencionó anteriormente)
  • A =casi todos los archivos (no incluye . y .. en cada directorio, pero muestra todos los archivos ocultos)
  • F =mostrar indicador de archivo, (uno de * para archivos exe, / para directorios, @ para enlaces simbólicos, | para FIFO, = para enchufes, y > para puertas)
  • G =no mostrar información del grupo (elimine esto si desea verlo)
  • R =lista recursivamente de directorios (subdirectorios) y
  • --si =muestra el tamaño del archivo en formato legible por humanos, por ejemplo, 1M (donde 1M =1000B)

ls puede proporcionar una sinopsis más fácil de leer de directorios y archivos dentro de esos directorios, como find La salida de puede ser difícil de escanear cuando los archivos están contenidos en estructuras de directorio realmente largas (que abarcan varias líneas). El corolario es que cada archivo se enumera por sí solo (es decir, sin información de la ruta del directorio) y es posible que tenga que retroceder un par de páginas/pantallas para encontrar los directorios en los que se encuentra un archivo en particular.

Además, find no contiene la información /A en el comando DIR. He sugerido una serie de atributos en el comando que he mostrado (que coincidentemente muestran la utilidad adicional que obtienes de Linux sobre un determinado sistema propietario), pero si lees el man y info páginas en ls , podrá ver qué incluir o no.


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

  2. Cómo encontrar archivos de formato DOS en un sistema de archivos de Linux

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

  4. Iterar sobre una lista de archivos con espacios

  5. Cómo eliminar un archivo con este nombre en Linux:-]???????q

Linux:Cómo compartir archivos en una red local con guau

Cómo cambiar el nombre de un archivo (s) en Linux

Cómo encontrar archivos basados ​​en la marca de tiempo en Linux

Cómo encontrar archivos modificados en las últimas 24 horas en Linux

Cómo encontrar archivos con el comando fd en Linux

Cómo comprimir un archivo en Linux