12 votes

Comment rechercher tous les fichiers cachés qui se trouvent dans des dossiers cachés en utilisant le Terminal ?

J'ai besoin de trouver certaines configurations enfouies dans des dossiers cachés et je n'arrive pas à me rappeler où elles se trouvent pour y accéder directement. Cmd + Shift + G .

J'ai fait un sudo find -name Foo* (lent), mais aucun des fichiers renvoyés n'était dans des dossiers cachés.

Quel est le moyen le plus simple de rechercher tous les fichiers cachés ?

18voto

Fuzzy Purple Monkey Points 702

mdfind semble ignorer beaucoup de fichiers cachés. mdfind 'kMDItemFSInvisible==1&&kMDItemFSName==filename' ne liste .DS_Store mais pas par exemple .bash_history . Je n'ai pas trouvé de moyen de rechercher des fichiers dans certains répertoires cachés comme /private/etc/ .

De toute façon, Trouver n'importe quel fichier est beaucoup plus rapide que find .

Find Any File est un programme pour Mac OS X qui vous permet de rechercher des fichiers sur vos disques.

  • Contrairement à Spotlight, il n'utilise pas de base de données mais plutôt les opérations de recherche rapide du pilote du système de fichiers, lorsqu'elles sont disponibles. Cela vous permet de rechercher des propriétés de fichier telles que le nom, les dates, la taille, etc., mais pas le contenu du fichier (utilisez Spotlight ou EasyFind pour cela).
  • Find Any File peut trouver des fichiers que Spotlight ne trouve pas, par exemple ceux qui se trouvent dans des paquets et des dossiers qui sont habituellement exclus de la recherche Spotlight.
  • Enfin, il est assez rapide. Une recherche ne prend que quelques secondes sur un disque dur interne ou un SSD. Essayez par vous-même !

7voto

staffan Points 3299

En supposant que par "fichier caché" vous entendez les fichiers dont le nom commence par un point ou qui sont situés quelque part sous un répertoire dont le nom commence par un point, et pas autres formes de fichiers invisibles la commande suivante affiche les noms de tous les fichiers cachés. Elle est lente car elle passe en revue tous les noms de fichiers partout sur votre système.

sudo find / -name '.*' \( -type d -exec find {} \; -prune -o -print \)

Explication :

  • -type d -exec find {} \; -prune exécute find sur chaque répertoire (dont le nom correspond à .* ), et évite de descendre dans ce répertoire en raison de l'existence de l'option -prune .
  • -type d … -o -print cause tous les non-répertoires qui correspondent .* à imprimer.

Si vous recherchez un fichier avec un nom ou un modèle spécifique :

sudo find / -name 'Foo*' -path '*/.*'

El */.* sur le chemin entier force les correspondances à être sous un répertoire caché.

Vous pouvez ajouter -xdev après le / pour éviter de traverser des systèmes de fichiers spéciaux et des disques amovibles.

5voto

Jay Thompson Points 4026

Essayez le locate commandement. Vous devrez sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist d'abord et attendez que la BD de localisation soit générée.

2voto

Nohl Points 203

EasyFind est une excellente application alternative pour faire le travail. Elle est gratuite et simple. Vous pouvez rechercher du texte dans des fichiers (même invisibles). <= Cela peut être un moyen plus facile de trouver vos fichiers de configuration.

Vous pouvez l'obtenir sur l'App Store https://itunes.apple.com/us/app/easyfind/id411673888?mt=12

Avis de non-responsabilité : Je ne suis pas affilié au développeur.

2voto

webcpu Points 101

ag peut rechercher les fichiers cachés par nom de fichier.

Par exemple :

ag --hidden -g ".swiftlint.yml" ~/

Comment installer

brew install the_silver_searcher

https://github.com/ggreer/the_silver_searcher

rg est plus rapide que ag.

rg --files --hidden ~/ |rg  ".swiftlint.yml"

Comment installer

brew install ripgrep

https://github.com/BurntSushi/ripgrep

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X