¿Cómo enumerar recursivamente todos los archivos y directorios ocultos?

13

Quiero enumerar todos los archivos y directorios ocultos y luego guardar el resultado en el archivo.

¿Hay algún comando para esto?

lukasz
fuente

Respuestas:

13

Si usa GNU find, puede hacer

find /path -path '*/.*' -ls | tee output-file

Editar

Para evitar mostrar elementos no ocultos contenidos en directorios ocultos

find /path -name '.*' >output-file

(como se señaló, teepodría evitarse si no necesita ver el resultado, y la -lsopción solo debe usarse si es necesario).

enzotib
fuente
2
O con en >lugar de | tee, si uno no quiere ver toda la salida en el terminal.
rozcietrzewiacz
Tampoco es necesario -lsen esto, que podría ser información extra desordenada para analizar el pensamiento.
Caleb
Esto también enumera el contenido de los directorios ocultos, que no es lo que pide la pregunta (probablemente, es un poco ambiguo).
Gilles 'SO- deja de ser malvado'
@Gilles: de hecho es ambiguo.
Editó
Tenga en cuenta que el primero no es específico de GNU. -pathPOSIX desde 2008. -lsNo es estándar pero es bastante común.
Stéphane Chazelas
10

Para enumerar los archivos y directorios ocultos en el directorio actual, incluidos .y ..:

echo .*

Para enumerar los archivos y directorios ocultos en el directorio actual y sus subdirectorios de forma recursiva:

find . -name '.*'

Si desea guardar los resultados en un archivo, use una redirección:

find . -name '.*' >output-file.txt
Gilles 'SO- deja de ser malvado'
fuente
1

Con zsh(usando el calificador global D ):

print -rl ./**/.*(D)

Para incluir archivos no ocultos en directorios ocultos:

setopt extendedglob
print -rl ./**/*~^*/.*(D)
don_crissti
fuente
0

En realidad, puede poner el mismo argumento varias veces en la misma línea de comando:

find /storage/????-????/ -iname '.*' -iname "*" | tee -a file-list-micSD-20190801163729.fli

El tee -acomando puede mostrar la salida del comando (o stdout ) simultáneamente mientras lo escribe en un archivo. Las -aopciones evitan el clobbering y añaden la información al archivo de salida de destino.

/storage/????-????/Es un camino de ejemplo. Es el camino hacia la tarjeta MicroSD de los teléfonos móviles Android más nuevos (también hay una aplicación de terminal para Android, con menos comandos pero aún muchos y significativamente mayor desde Android 6.0). La tarjeta MicroSD era anteriormente /storage/extSdCard. Ahora, es el número de serie del volumen.

neverMind9
fuente