Tüm gizli dosyaları ve dizinleri özyinelemeli olarak nasıl listeleyebilirim?


13

Tüm gizli dosyaları ve dizinleri listelemek ve daha sonra sonucu dosyaya kaydetmek istiyorum.

Bunun için herhangi bir komut var mı?

Yanıtlar:


13

GNU find kullanıyorsanız,

find /path -path '*/.*' -ls | tee output-file

Düzenle

Gizli dizinlerde bulunan gizli olmayan öğeleri göstermekten kaçınmak için

find /path -name '.*' >output-file

(belirtildiği gibi tee, çıktıyı görmeniz gerekmiyorsa önlenebilir ve -lsseçenek yalnızca gerektiğinde kullanılmalıdır).


2
Veya >bunun yerine | tee, eğer terminaldeki tüm çıkışı görmek istemiyorsa.
rozcietrzewiacz

Buna da ihtiyacınız yok -ls, düşünceyi ayrıştırmak için ekstra dağınık bilgi olabilir.
Caleb

Bu aynı zamanda gizli dizinlerin içeriğini de listeler, bu da sorunun istediği şey değildir (muhtemelen - biraz belirsizdir).
Gilles 'SO- kötü olmayı kes'

@Gilles: gerçekten belirsiz. Cevabı
düzenledi

İlki GNU'ya özgü değildir. -path2008'den beri POSIX. -lsstandart değil, oldukça yaygın.
Stéphane Chazelas

10

Dahil, geçerli dizinde gizli dosyaları ve dizinleri listelemek için .ve ..:

echo .*

Geçerli dizindeki ve alt dizinlerindeki gizli dosyaları ve dizinleri özyinelemeli olarak listelemek için:

find . -name '.*'

Sonuçları bir dosyaya kaydetmek istiyorsanız, yeniden yönlendirme kullanın:

find . -name '.*' >output-file.txt

1

İle zsh( glob niteleyicisini kullanarak D):

print -rl ./**/.*(D)

Gizli olmayan dosyaları gizli dizinlere dahil etmek için:

setopt extendedglob
print -rl ./**/*~^*/.*(D)

0

Aynı argümanı aynı komut satırına birden çok kez koyabilirsiniz:

find /storage/????-????/ -iname '.*' -iname "*" | tee -a file-list-micSD-20190801163729.fli

tee -aKomut komutunun çıktısı (veya görüntüleme yapabiliyor stdout'u bir dosyaya yazma whie aynı anda). -aSeçenekleri önler clobbering ve bunun yerine hedef çıkış dosyasına bilgi ekleyecek gelmez.

/storage/????-????/örnek bir yoldur. Daha yeni Android Cep telefonlarının MicroSD kartının yoludur (Android için bir terminal uygulaması da vardır, daha az komutla ancak Android 6.0'dan beri hala çok ve önemli ölçüde artmıştır). MicroSD kartı eskiden vardı /storage/extSdCard. Şimdi, seri seri numarasıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.