Obtenga una lista de todos los archivos en la carpeta y subcarpeta en un archivo

28

¿Cómo obtengo una lista de todos los archivos en una carpeta, incluidos todos los archivos dentro de todas las subcarpetas y pongo la salida en un archivo?

Namshum
fuente

Respuestas:

39

Puede hacer esto en la línea de comando, usando el interruptor -R (recursivo) y luego canalizando la salida a un archivo de esta manera:

ls -R > filename1

esto creará un archivo llamado filename1 en el directorio actual, que contiene una lista completa del directorio del directorio actual y todos los subdirectorios debajo de él.

Puede enumerar directorios distintos al actual especificando la ruta completa, por ejemplo:

ls -R /var > filename2

enumerará todo dentro y debajo de / var y colocará los resultados en un archivo en el directorio actual llamado filename2. Esto funciona en directorios propiedad de otro usuario, incluida la raíz, siempre que tenga acceso de lectura para los directorios.

También puede enumerar directorios a los que no tiene acceso, como / root con el uso del comando sudo. p.ej:

sudo ls -R /root > filename3

Enumeraría todo en / root, colocando los resultados en un archivo llamado filename3 en el directorio actual. Como la mayoría de los sistemas Ubuntu no tienen nada en este directorio, filename3 no contendrá nada, pero funcionaría si lo hiciera.

fabricante4
fuente
Tal vez decirle a la persona que ingrese el CD primero en el directorio podría agregarse para responder. También funciona bien si soy el propietario del directorio, pero si lo intento en un directorio que dice que es propiedad de root, no lo hice. Obtuve el permiso habitual denegado y sudo seguido de su comando También dio permiso denegado. ¿Hay alguna solución alternativa sin iniciar sesión como root?
damien
Bueno, dije directorio "actual". El uso correcto del CD podría ser el tema de otra pregunta, y estoy seguro de que lo ha sido. Puede enumerar directorios propiedad de root siempre que tenga acceso de lectura a ellos. Los directorios propiedad de root a los que el usuario tiene acceso de lectura se pueden enumerar con ls -R. Es difícil imaginar por qué querría enumerar directorios propiedad de root a los que no tiene acceso de lectura, pero sudo sí funciona si proporciona la ruta completa. Estoy agregando ejemplos para ambos, pero excluyendo el uso de CD.
fabricante4
8

árbol Instalar árbol

Una alternativa a la recursiva lses la herramienta de línea de comandos treeque viene con muchas opciones para personalizar el formato de la salida desplegada. Consulte la página de manual del árbol para ver todas las opciones.

Takkat
fuente
7

Simplemente use el findcomando con el nombre del directorio. Por ejemplo, para ver los archivos y todos los archivos dentro de las carpetas en su directorio de inicio, use

find ~

Consulte la página de manual de búsqueda del findcomandoIcono de página de manual

También verifique la página de información de encontrar GNU usando el info findcomando en una terminal.

Anwar
fuente
Este es el enfoque más poderoso. findtiene muchos parámetros para personalizar el formato de salida y la selección de archivos.
pauljohn32
Ese es el mejor enfoque en mi opinión. Simple y practico. También podría hacerlo $ find . > outputsi hay muchos directorios.
felippe
4

También:

gvfs-tree /path/to/folder/

le dará lo mismo que el árbol usando otros caracteres para las líneas.

tree -a

para mostrar archivos ocultos también

tree -i

para no mostrar líneas

Pili Garcia
fuente
1
  1. Vaya a la carpeta de la que desea obtener una lista de contenido.
  2. Seleccione los archivos que desea en su lista ( Ctrl+ Asi desea la carpeta completa).
  3. Copie el contenido con Ctrl+ C.
  4. Abra gedit y pegue el contenido con Ctrl+ V. Se pegará como una lista y luego podrá guardar el archivo.

Este método no incluirá subcarpetas, aunque el contenido.

Roy van Arem
fuente
1

También podría usar la contraparte de la GUI para la treesugerencia de Takkat, que es Baobab . Se utiliza para ver carpetas y subcarpetas, a menudo con el fin de analizar el uso del disco. Es posible que ya lo tenga instalado si está utilizando un escritorio GNOME (a menudo se lo llama analizador de uso de disco).

sudo apt-get install baobab

Puede seleccionar una carpeta y también ver todas sus subcarpetas, al tiempo que obtiene los tamaños de las carpetas y su contenido como se muestra en la captura de pantalla a continuación. Simplemente haga clic en la pequeña flecha hacia abajo para ver una subcarpeta dentro de una carpeta. Es muy útil para obtener una visión rápida de lo que tiene en sus carpetas y puede producir listas visibles, pero en este momento no puede exportarlas a un archivo. Sin embargo, se ha solicitado como una característica en Launchpad . Incluso puede usarlo para ver el sistema de archivos raíz si lo usa gksudo baobab.

(También puede obtener una lista de archivos con sus tamaños usando ls -shR ~/myfoldery luego exportarlos a un archivo).

Ingrese la descripción de la imagen aquí

Peter Mortensen
fuente
El OP quería los resultados en un archivo, presumiblemente para hacer algo más con él. Si bien Baobab es una buena herramienta, no parece cumplir con los requisitos de la pregunta original del OP.
fabricante4
@ fabricator4 También agregué la opción ls, ya que baobab actualmente no puede generar una lista.