Bagaimana cara mencari semua file tersembunyi yang ada di folder tersembunyi menggunakan Terminal?

10

Saya perlu menemukan beberapa konfigurasi terkubur di beberapa folder tersembunyi dan tidak dapat mengingat di mana mereka menavigasi ke mereka secara langsung Cmd+ Shift+ G.

Saya melakukan sudo find -name Foo*(lambat), tetapi tidak ada file yang dikembalikan dalam folder tersembunyi.

Apa cara termudah untuk mencari semua file yang tersembunyi?

McStopher tua
sumber
Catatan: Menggunakan sudotidak perlu kecuali Anda perlu mencari di direktori yang Anda tidak memiliki akses. Pencarian di direktori tersembunyi tidak memerlukan hak yang lebih tinggi, jika itu sebabnya digunakan dalam contoh Anda.
Chris Page

Jawaban:

14

mdfindtampaknya mengabaikan banyak file tersembunyi. mdfind 'kMDItemFSInvisible==1&&kMDItemFSName==filename'tidak daftar .DS_Storefile, tetapi tidak misalnya .bash_history. Saya belum menemukan cara untuk mencari file di beberapa direktori tersembunyi seperti /private/etc/.

Bagaimanapun, Temukan File Apa Saja jauh lebih cepat daripada find.

Find Any File adalah program untuk Mac OS X yang memungkinkan Anda mencari file di disk Anda.

  • Berlawanan dengan Spotlight, itu tidak menggunakan database melainkan menggunakan operasi pencarian cepat driver sistem file, jika tersedia. Ini memungkinkan Anda mencari properti file seperti nama, tanggal, ukuran, dll., Tetapi tidak untuk konten file (gunakan Spotlight atau EasyFind untuk itu).
  • Temukan File Apa Pun dapat menemukan file yang tidak dimiliki Spotlight, misalnya yang ada di dalam bundel dan paket dan di dalam folder yang biasanya dikecualikan dari pencarian Spotlight.
  • Akhirnya, ini cukup cepat. Pencarian hanya membutuhkan beberapa detik pada hard disk internal atau SSD. Coba sendiri!
Lri
sumber
6

Dengan asumsi bahwa dengan "file tersembunyi" yang Anda maksud adalah file yang namanya dimulai dengan titik atau yang terletak di suatu tempat di bawah direktori yang namanya dimulai dengan titik, dan bukan bentuk lain dari file yang tidak terlihat , perintah berikut ini mencetak nama semua file yang tersembunyi. Ini lambat karena masuk ke semua nama file di mana-mana di sistem Anda.

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

Penjelasan:

  • -type d -exec find {} \; -prunedijalankan finddi setiap direktori (yang namanya cocok .*), dan melompat turun ke direktori itu karena -prune.
  • -type d … -o -printmenyebabkan semua non-direktori yang cocok .*untuk dicetak.

Jika Anda mencari file dengan nama atau pola tertentu:

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

The */.*pola pada pasukan jalan seluruh pertandingan berada di bawah direktori tersembunyi.

Anda mungkin ingin menambahkan -xdevsetelah /untuk menghindari melintasi sistem file khusus dan removable disk.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Ah terima kasih. Dan sepertinya -x lebih disukai sekarang, karena -xdev sudah usang.
McStopher Tua
4

Coba locateperintahnya. Anda harus sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plistterlebih dahulu dan menunggu DB locating dihasilkan.

Jay Thompson
sumber
3
Ini adalah gangguan sehingga Spotlight tidak mengambil file yang tersembunyi / (dot-), karena mdfind jauh lebih unggul daripada slocate.
Jason Salaz
2

EasyFind adalah aplikasi alternatif yang sangat baik untuk menyelesaikan pekerjaan. Ini gratis dan mudah. Anda dapat mencari teks dalam file (bahkan yang tidak terlihat). <= Ini mungkin cara yang lebih mudah untuk menemukan file konfigurasi Anda.

Anda bisa mendapatkannya dari App Store https://itunes.apple.com/us/app/easyfind/id411673888?mt=12

Penafian: Saya tidak berafiliasi dengan pengembang.

Nohl
sumber
Tidak berfungsi pada drive berformat APFS.
Victor Engel