Policzyć liczbę plików w katalogu w systemie Linux? [Zamknięte]

332

Zwykle używam do zliczania liczby plików w katalogu

ls directory | wc -l

Ale czy jest inne polecenie, którego nie używa wc?

Kantura
źródło
16
Na czym dokładnie polega problem, wcktóry uniemożliwia korzystanie z niego?
vanza
5
Nie całkiem. Polecenia uniksowe są na ogół przeznaczone do użycia w ten sposób, połączone w potoki.
Michael Berkowski
2
Łączę się za pośrednictwem ssh z innym hostem, aby uzyskać dostęp do niektórych danych. Niestety, kilka podstawowych poleceń wydaje się nie działać na tym hoście. Jeśli użyję wc, zwraca „nierozpoznane polecenie”. Więc szukam innych opcji.
Kantura
7
Użyj treepolecenia. To da ci drzewo, a na dole powie ci ile jest plików i katalogów. Jeśli chcesz ukryte pliki, użyj również tree -a.
Elijah Lynn
5
@vanza „Na czym dokładnie polega problem z wc ”, co jeśli plik ma \nnazwę w nazwie? Tak, bardzo mało prawdopodobne! Ale nadal technicznie ważne i możliwe.
JamesThomasMoon1979

Odpowiedzi:

523

to jest jeden:

ls -l . | egrep -c '^-'

Uwaga:

ls -1 | wc -l

Co oznacza:: lslista plików w reż

-1: (to JEDEN) tylko jeden wpis w wierszu. Zmień go na -1a, jeśli chcesz również ukryte pliki

|: wyjście rury na ...

wc: "Liczba słów"

-l: policz lines.

Sajad Karuthedath
źródło
1
Nie, czekaj . Zrobiłem booboo. Masz absolutną rację, Sajad Lfc. ls -1 reż | egrep -c '' Zwraca liczbę plików w reż. Dzięki .
Kantura
1
@SajadKaruthedath ls -l . | egrep -c '^-'nie liczy ukrytych plików. Sugeruję dodanie -aflagi do ls.
JamesThomasMoon1979
1
@ JamesThomasMoon1979: proszę sprawdzić mój opis
Sajad Karuthedath
1
Pokazuje błąd, gdy w folderze nie ma żadnych plików. Zastosowanie ls -1 /dir 2>/dev/null | wc -l. Tutaj wyjście z ls jest kierowane do / dev / null, a wynikiem jest czyste zero
Sathish
6
@runios to dlatego, że ls -lzwraca dodatkowy wiersz u góry, sumując rozmiary plików w sumie. Powinieneś używać, ls -1a nie ls -l. Także jeśli ktoś chce ukrytych plików, ale nie ma katalogów .i ..powinien skorzystaćls -1A | wc -l
Daniel Biegler,