Proste pytanie, jestem pewien. Widziałem odpowiedź, która pokazuje, jak to zrobić, w tym podkatalogi, ale chcę wiedzieć, ile plików (nie folderów) znajduje się tylko w bieżącym katalogu. Dzięki.
Proste pytanie, jestem pewien. Widziałem odpowiedź, która pokazuje, jak to zrobić, w tym podkatalogi, ale chcę wiedzieć, ile plików (nie folderów) znajduje się tylko w bieżącym katalogu. Dzięki.
Odpowiedzi:
ls -F |grep -v / | wc -l
ls -F wyświetl wszystkie pliki i dołącz do wpisów (jeden z * / => @ |) grep -v /zachowaj wszystkie ciągi, które nie zawierają ukośnika wc -l policzyć linieSpróbuj tego
ls -al | grep ^[-] | wc -l
ls -al - wyświetla listę wszystkich plików z długim formatem listowaniagrep ^[-] - wyszukaj ciąg rozpoczynający się od „-”, który oznacza symbol zwykłego pliku, gdy plik listy ma ls -alwc -l - policz linie-przezl
Chcę tylko dodać odpowiedź Thoma, ponieważ lubię grać z Bash . Oto jest:
echo "Directory $(pwd) has $(ls -F |grep -v / | wc -l) files"
Poniżej znajduje się przykładowy wynik mojego /datakatalogu:
Directory /data has 580569 file(s).
I poniżej moje wyjaśnienia:
echo double-quoted-message wydrukuje pożądaną wiadomość.$(any-desirable-valid-command)wewnątrz podwójnie cytowanego komunikatu echowydrukuje wynik wykonania powiązanego polecenia.pwd wydrukuje bieżący katalog.ls -Fsłuży do wyświetlania wszystkich plików i dołączania wskaźnika (jednego z * / => @ |) do wpisów. Skopiowałem to z odpowiedzi Thoma .grep -v /to polecenie do wyszukiwania zwykłego tekstu, -v /parametr zachowuje wszystkie ciągi, które nie zawierają ukośników.wc -l wydrukuje liczenie linii.Wiem, że to pytanie ma 3 lata, po prostu nie mogę powstrzymać się od dodania kolejnej odpowiedzi.
Aby policzyć całkowitą liczbę plików z określonym rozszerzeniem, możesz wpisać:
ls|grep jpg |wc -l