Yanıtlar:
ls -F |grep -v / | wc -l
ls -F tüm dosyaları listele ve göstergeyi (* / => @ |) girişlerden birine ekle grep -v /do bütün de dizeleri tutmak değil bir çizgi içerirler wc -l sayım çizgileriBunu dene
ls -al | grep ^[-] | wc -l
ls -al - Uzun dosya formatı ile tüm dosyaları listelegrep ^[-] - ls -al olan liste dosyası olduğunda normal dosyayı ifade eden sembol olan "-" ile başlayan dizgeyi arayın.wc -l - sayım çizgileri-tarafındanl
Sadece thom'un cevabını eklemek istiyorum çünkü Bash ile oynamayı seviyorum . İşte gidiyor:
echo "Directory $(pwd) has $(ls -F |grep -v / | wc -l) files"
Körük dizimin bir sonucudur /data:
Directory /data has 580569 file(s).
Ve feryat benim açıklamalarım:
echo double-quoted-message İstenilen bir mesajı yazdıracaktır.$(any-desirable-valid-command)Bir ihale çift alıntı mesajı echoiçinde ilgili komut yürütme sonucunu yazdıracak.pwd geçerli dizini yazdıracak.ls -Ftüm dosyaları listelemek içindir ve göstergeyi (* / => @ |) girişlerine ekleyin. Bunu, Thom'un cevabından kopyaladım .grep -v /düz metin aramak için kullanılan bir komuttur; -v /parametre, eğik çizgi içermeyen tüm dizeleri tutacaktır.wc -l satır sayımı basacaktır.Bu sorunun 3 yaşında olduğunu biliyorum, başka bir cevap eklemek için dürtü tutamıyorum.
Belirli uzantılara sahip toplam dosya sayısını saymak için şunu yazabilirsiniz:
ls|grep jpg |wc -l