Opsi apa yang perlu saya gunakan find
untuk mengecualikan file tersembunyi?
linux
command-line
unix
find
dari sana
sumber
sumber
ls
kecuali diminta secara khusus: mereka adalah file yang benar-benar biasa dalam segala hal, hanya saja yangls
memungkinkan Anda mengabaikannya secara default..hidden/visible.txt
?Jawaban:
Saya menemukan ini di sini :
sumber
\( ! -name '.*' \)
?\( ! -path '*/.*' \)
akan.Sepertinya negasi pola glob tidak diketahui dengan baik. Jadi Anda bisa menggunakan:
sumber
Ini tidak menjawab pertanyaan Anda, tetapi untuk tugas menemukan file yang tidak disembunyikan saya ingin membiarkan find menemukan semua file kemudian filter dengan grep.
Mirip dengan pendekatan Anda tetapi mungkin sedikit lebih sederhana.
sumber
Coba
find
penggunaan berikut ini :Yang akan mengabaikan semua file yang tersembunyi (file dan direktori dimulai dengan titik).
sumber
Saya menulis sebuah skrip bernama
findnh
yang saya percaya menangani kasus tepi tertentu lebih baik daripada jawaban untuk pertanyaan ini yang saya dapat temukan di web.Misalnya, Anda dapat menemukan file dan direktori yang tidak tersembunyi di dalam direktori tersembunyi yang ditentukan secara eksplisit dengan perintah seperti
findnh ~/.hiddendir/
, yang akan ditampilkan~/.hiddendir/file
tetapi tidak~/.hiddendir/.superhiddenfile
.sumber
findnh ~/.hiddendir/
, saya tidak mendapatkan apa-apa. Selain itu, bagaimana bedanya dengan! -path '*/.*'
danfind … | grep -v '/\.'
?Jika Anda bertujuan untuk
find
dangrep
,ripgrep
apakah mengecualikan file tersembunyi secara default, missumber
fd
Gunakan
fd
, alternatif yang sederhana, jauh lebih cepat dan ramah penggunafind
. Secara default, ini:.gitignore
, secara default.Periksa analisis Tolok Ukur .
sumber
Untuk menemukan file tersembunyi:
Untuk menemukan file yang terlihat:
Sesederhana itu.
sumber