Come posso cercare tutti i file nascosti che si trovano in cartelle nascoste usando Terminal?


10

Ho bisogno di trovare alcune configurazioni sepolte in alcune cartelle nascoste e non riesco a ricordare dove si trovano per spostarle direttamente Cmd+ Shift+ G.

Ho fatto un sudo find -name Foo*(lento), ma nessuno dei file restituiti si trovava in cartelle nascoste.

Qual è il modo più semplice per cercare tutti i file nascosti?


Nota: l'utilizzo sudonon è necessario a meno che non sia necessario cercare nelle directory a cui non si ha accesso. La ricerca in directory nascoste non richiede privilegi elevati, se è per questo che viene utilizzata nel tuo esempio.
Chris Page

Risposte:


14

mdfindsembra ignorare molti file nascosti. mdfind 'kMDItemFSInvisible==1&&kMDItemFSName==filename'elenca i .DS_Storefile, ma non per esempio .bash_history. Non ho trovato alcun modo per cercare file in alcune directory nascoste come /private/etc/.

Comunque, Trova qualsiasi file è molto più veloce di find.

Trova qualsiasi file è un programma per Mac OS X che ti consente di cercare file sui tuoi dischi.

  • Contrariamente a Spotlight, non utilizza un database ma utilizza invece le operazioni di ricerca rapida del driver del file system, ove disponibili. Ciò consente di cercare proprietà del file come nome, data, dimensione, ecc., Ma non il contenuto del file (utilizzare Spotlight o EasyFind per questo).
  • Trova qualsiasi file può trovare file che Spotlight non trova, ad esempio quelli all'interno di bundle e pacchetti e all'interno di cartelle che di solito sono esclusi dalla ricerca Spotlight.
  • Infine, è abbastanza veloce. Una ricerca richiede solo pochi secondi su un disco rigido interno o SSD. Prova per te!

6

Supponendo che per "file nascosto" si intendono i file il cui nome inizia con un punto o che si trovano da qualche parte in una directory il cui nome inizia con un punto e non altre forme di file invisibili , il comando seguente stampa i nomi di tutti i file nascosti. È lento in quanto passa su tutti i nomi dei file ovunque sul tuo sistema.

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

Spiegazione:

  • -type d -exec find {} \; -pruneviene eseguito findsu ogni directory (il cui nome corrisponde .*) e salta discendente in quella directory a causa di -prune.
  • -type d … -o -printcausa la .*stampa di tutte le non directory corrispondenti .

Se stai cercando un file con un nome o un motivo specifico:

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

Il */.*modello sull'intero percorso impone che le corrispondenze si trovino in una directory nascosta.

Potresti voler aggiungere -xdevdopo il /per evitare di attraversare filesystem speciali e dischi rimovibili.


Ah grazie. E sembra che -x sia preferito ora, poiché -xdev è deprecato.
Old McStopher,

4

Prova il locatecomando. Dovrai sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plistprima e attendere che venga generato il DB di individuazione.


3
È così fastidioso che Spotlight non raccolga file nascosti / (punti), perché mdfind è di gran lunga superiore a slocate.
Jason Salaz,

2

EasyFind è un'eccellente app alternativa per svolgere il lavoro. È gratuito e facile. Puoi cercare testo nei file (anche quelli invisibili). <= Questo potrebbe essere un modo più semplice per trovare i tuoi file di configurazione.

Puoi scaricarlo dall'App Store https://itunes.apple.com/us/app/easyfind/id411673888?mt=12

Disclaimer: non sono affiliato con lo sviluppatore.


Non funziona su unità formattate APFS.
Victor Engel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.