Comment rechercher tous les fichiers cachés qui se trouvent dans des dossiers cachés à l'aide de Terminal?

10

J'ai besoin de trouver des configurations enfouies dans certains dossiers cachés et je ne me souviens pas 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 retournés n'était dans des dossiers cachés.

Quelle est la façon la plus simple de rechercher tous les fichiers cachés?

Old McStopher
la source
Remarque: L'utilisation sudon'est pas nécessaire, sauf si vous devez rechercher dans des répertoires auxquels vous n'avez pas accès. La recherche dans des répertoires cachés ne nécessite pas de privilèges élevés, si c'est pourquoi elle est utilisée dans votre exemple.
Chris Page

Réponses:

14

mdfindsemble ignorer beaucoup de fichiers cachés. mdfind 'kMDItemFSInvisible==1&&kMDItemFSName==filename'répertorie les .DS_Storefichiers, mais pas par exemple .bash_history. Je n'ai trouvé aucun moyen de rechercher des fichiers dans certains répertoires cachés comme /private/etc/.

Quoi qu'il en soit, Find Any File 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 utilise à la place les opérations de recherche rapide du pilote du système de fichiers, le cas échéant. 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).
  • Rechercher n'importe quel fichier peut rechercher des fichiers que Spotlight ne trouve pas, par exemple ceux qui se trouvent à l'intérieur de bundles et de packages et dans des dossiers internes qui sont généralement exclus de la recherche Spotlight.
  • Enfin, c'est assez rapide. Une recherche ne prend que quelques secondes sur un disque dur interne ou un SSD. Essayez par vous-même!
Lri
la source
6

En supposant que par «fichier caché», vous voulez dire des fichiers dont le nom commence par un point ou qui se trouvent quelque part sous un répertoire dont le nom commence par un point, et pas d' autres formes de fichiers invisibles , la commande suivante imprime les noms de tous les fichiers cachés. C'est lent car il parcourt 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 {} \; -prunes'exécute findsur chaque répertoire (dont le nom correspond .*) et saute dans ce répertoire en raison de la -prune.
  • -type d … -o -printentraîne l' .*impression de tous les non-répertoires correspondants .

Si vous recherchez un fichier avec un nom ou un motif spécifique:

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

Le */.*motif sur l'ensemble du chemin oblige les correspondances à se trouver dans un répertoire caché.

Vous voudrez peut-être ajouter -xdevaprès le /pour éviter de traverser des systèmes de fichiers spéciaux et des disques amovibles.

Gilles 'SO- arrête d'être méchant'
la source
Ah merci. Et il semble que -x soit préféré maintenant, car -xdev est déconseillé.
Old McStopher
4

Essayez la locatecommande. Vous devrez d' sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plistabord et attendre que la base de données de localisation soit générée.

Jay Thompson
la source
3
C'est une telle nuisance que Spotlight ne récupère pas les fichiers cachés / (dot-), car mdfind est largement supérieur à slocate.
Jason Salaz
2

EasyFind est une excellente application alternative pour faire le travail. C'est gratuit et facile. 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

Avertissement: je ne suis pas affilié au développeur.

Nohl
la source
Ne fonctionne pas sur les lecteurs au format APFS.
Victor Engel