En kolay yol find /path/to/search -ls | wc -l
Bul tüm dosyalar ve klasörler üzerinden yürümek için kullanılır.
-ls
Tüm isimleri listelemek (yazdırmak). Bu bir varsayılan ayardır ve dışarıda bırakırsanız hemen hemen tüm sistemlerde aynı şekilde çalışır. (Neredeyse, bazıları farklı varsayılanlara sahip olabileceğinden). Yine de bunu açıkça kullanmak iyi bir alışkanlıktır.
Sadece find /path/to/search -ls
parçayı kullanırsanız, tüm dosyaları ve dizinleri ekranınıza yazdıracaktır.
wc
kelime sayımıdır. -l
opsiyon satır sayısını saymak için söyler.
Birkaç şekilde kullanabilirsiniz, örn.
- wc test dosyası
- kedi test dosyası | tuvalet
İlk seçenek, wc'nin bir dosyayı açmasına ve o dosyadaki satır, kelime ve karakter sayısını saymasına izin verir. İkinci seçenek de aynısını yapar ancak dosya adı olmadan stdin'den okur.
Bir boru ile komutları kombine edebilirsiniz |
. İlk komuttan çıkış ikinci komutun girişine bağlanır. Böylece find /path/to/search -ls | wc -l
find tüm dosyaları ve dizini listeler ve çıktı wc besler. Wc daha sonra satır sayısını sayar.
(Başka bir alternatif `` ls | wc '' olurdu, ancak bulmak çok daha esnek ve öğrenmek için iyi bir araçtır.)
[Yorumdan sonra düzenle]
Bulma ve yürütmeyi birleştirmek yararlı olabilir.
Örneğin find / -type d ! \( -path proc -o -path dev -o -path .snap \) -maxdepth 1 -exec echo starting a find to count to files in in {} \;
, arama yapmak istemediğiniz bazı dizinleri /, çubuğunda listeleyecektir. Her birinde bir önceki komutu tetikleyebiliriz ve / içindeki klasör başına toplam dosya veririz.
Ancak:
- Bu, GNU'ya özgü -maxdepth uzantısını kullanır.
Linux üzerinde çalışacak, ancak herhangi bir unix-a-benzeri üzerinde değil.
- Aslında her bir alt dizin için bir dizi fo dosya isteyebileceğinden şüpheleniyorum.