Comment lister récursivement tous les fichiers et répertoires cachés?

13

Je veux répertorier tous les fichiers et répertoires cachés, puis enregistrer le résultat dans un fichier.

Y a-t-il une commande pour cela?

lukasz
la source

Réponses:

13

Si vous utilisez GNU find, vous pouvez le faire

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

Éditer

Pour éviter d'afficher des éléments non masqués contenus dans des répertoires masqués

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

(comme indiqué, teepourrait être évité si vous n'avez pas besoin de voir la sortie, et l' -lsoption ne doit être utilisée que si nécessaire).

enzotib
la source
2
Ou avec >au lieu de | tee, si l'on ne veut pas voir la sortie entière sur le terminal.
rozcietrzewiacz
Vous n'avez également pas besoin -lsde cela, cela pourrait être des informations supplémentaires en désordre pour analyser la pensée.
Caleb
Cela répertorie également le contenu des répertoires cachés, ce qui n'est pas ce que la question demande (probablement - c'est un peu ambigu).
Gilles 'SO- arrête d'être méchant'
@Gilles: en effet c'est ambigu. Modifié la réponse
enzotib
Notez que le premier n'est pas spécifique à GNU. -pathest POSIX depuis 2008. -lsn'est pas standard mais assez courant.
Stéphane Chazelas
10

Pour répertorier les fichiers et répertoires cachés dans le répertoire actuel, y compris .et ..:

echo .*

Pour répertorier les fichiers et répertoires cachés dans le répertoire actuel et ses sous-répertoires de manière récursive:

find . -name '.*'

Si vous souhaitez enregistrer les résultats dans un fichier, utilisez une redirection:

find . -name '.*' >output-file.txt
Gilles 'SO- arrête d'être méchant'
la source
1

Avec zsh(en utilisant le qualificatif glob D ):

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

Pour inclure des fichiers non masqués dans des répertoires masqués:

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

Vous pouvez réellement mettre le même argument plusieurs fois dans la même ligne de commande:

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

La tee -acommande est capable d'afficher la sortie de la commande (ou stdout ) simultanément en l'écrivant dans un fichier. Les -aoptions empêchent le clobber et ajoutent les informations au fichier de sortie cible à la place.

/storage/????-????/est un exemple de chemin. C'est le chemin vers la carte MicroSD des téléphones mobiles Android les plus récents (il existe également une application de terminal pour Android, avec moins de commandes mais toujours beaucoup et considérablement augmenté depuis Android 6.0). La carte MicroSD était autrefois /storage/extSdCard. Maintenant, c'est le numéro de série du volume.

neverMind9
la source