find
Gizli dosyaları dışlamak için hangi seçenekleri kullanmam gerekir ?
.hidden/visible.txt
?
find
Gizli dosyaları dışlamak için hangi seçenekleri kullanmam gerekir ?
.hidden/visible.txt
?
Yanıtlar:
Bunu burada buldum :
find . \( ! -regex '.*/\..*' \) -type f -name "whatever"
\( ! -name '.*' \)
?
\( ! -path '*/.*' \)
olur.
Olumsuzluk glob modelinin iyi bilinmediği görülüyor. Yani kullanabilirsiniz:
find . -name "[!.]*"
Bu, sorunuzu cevaplamıyor, ancak gizli olmayan dosyaları bulma görevi için, tüm dosyaları bulabilmeyi ve sonra grep ile filtrelemeyi seviyorum.
find . -type f | grep -v '/\.'
Yaklaşımınıza benzer ancak belki biraz daha basit.
findnh
Belli başlı vakaları web'de bulabildiğim bu sorunun cevaplarından daha iyi ele aldığına inandığım bir senaryo yazdım .
#!/bin/bash
declare -a paths
while [ $# -ne 0 ]; do
case "$1" in -*) break ;; esac
paths+=("$1")
shift
done
find "${paths[@]}" \( -name . -o -name .. -o \! \( -name '.*' -prune \) \) "$@"
Örneğin, içinin nasıl bir komutla bir açıkça belirtilen gizli dizinin olmayan gizli dosyaları ve dizinleri bulabilirsiniz findnh ~/.hiddendir/
gösterecektir, ~/.hiddendir/file
ancak ~/.hiddendir/.superhiddenfile
.
findnh ~/.hiddendir/
hiçbir şey alamadım. Bundan başka, bunun nasıl ! -path '*/.*'
ve find … | grep -v '/\.'
?
fd
Kullanımı fd
basit, çok daha hızlı ve kullanıcı dostu bir alternatif find
. Varsayılan olarak:
.gitignore
Varsayılan olarak, 'daki kalıpları yok sayar .Benchmark analizini kontrol edin .
ls
özel olarak talep edilmedikçe listelenmemiş olmaları: her bakımdan tamamen sıradan dosyalar, sadecels
varsayılan olarak onları görmezden gelmenize izin veriyor.