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?

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).


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

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)

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.