Chciałbym, aby polecenie BASH wyświetlało tylko liczbę plików w każdym podkatalogu katalogu.
Na przykład w katalogu /tmp
nie są dir1
, dir2
... Chciałbym zobaczyć:
`dir1` : x files
`dir2` : x files ...
Zakładając, że chcesz tylko rekurencyjną liczbę plików, a nie katalogów i innych typów, coś takiego powinno działać:
find . -maxdepth 1 -mindepth 1 -type d | while read dir; do
printf "%-25.25s : " "$dir"
find "$dir" -type f | wc -l
done
find
...-print0 | xargs -0
....bash
alias
!!sort -rn -k 2,2 -t$':'
dostajesz listę DESCTo zadanie tak mnie zafascynowało, że sam chciałem znaleźć rozwiązanie. Nie zajmuje to nawet czasu i MOŻE być szybszy w wykonywaniu. Nie trzeba dodawać, że wysiłki Thora pomogły mi bardzo szczegółowo zrozumieć rzeczy.
Oto moje:
Z jakiegoś powodu wygląda skromnie, ponieważ jest o wiele potężniejszy niż wygląda. :-)
Jeśli jednak chcesz dołączyć to do swojego
.bash_aliases
pliku, musi on wyglądać następująco:Zwróć uwagę na bardzo trudną obsługę zagnieżdżonych pojedynczych cudzysłowów. I nie, nie można użyć podwójnego cudzysłowu jako
sh -c
argumentu.źródło
strace -fc script
. Twoja wersja generuje około 70% więcej wywołań systemowych. +1 za krótszy kod :-)find . -maxdepth 1 -mindepth 1 -type d -exec sh -c 'echo "$(find "{}" -type f | wc -l)" {}' \; | sort -nr
Wyświetla listę folderów i plików w bieżącym folderze z liczbą plików znajdujących się poniżej. Szybkie i przydatne IMO. (pliki pokazują z liczbą 1).
źródło
| sort -rn
do sortowania podkatalogów według liczby plików.Korzystanie z funkcji wyszukiwania jest zdecydowanie najlepszym rozwiązaniem, jeśli chcesz liczyć rekurencyjnie, ale jeśli chcesz tylko liczbę plików bezpośrednio w określonym katalogu:
ls dir1 | wc -l
źródło
ls -d */ | xargs -n1 ls | wc -l
(Użyj jednak odpowiedzi, którą zaakceptowałeś, jeśli już działa! To jest po prostu i teraz wiesz.)find
jest tak ważny. (nie mówiąc już-print0
ixargs -0
już wskazane przez Scotta w drugiej odpowiedzi)Często muszę liczyć liczbę plików w moich podkatalogach i używać tego polecenia. Wolę, aby liczba pojawiła się pierwsza.
źródło
Czego używam ... To tworzy tablicę wszystkich podkatalogów w tym, który podajesz jako parametr. Wydrukuj podkatalog i liczbę tego samego podkatalogu, aż wszystkie podkatalogi zostaną przetworzone.
źródło
Możesz użyć tego kodu python. Uruchom interpreter, uruchamiając
python3
i wklej to:Lub wersja rekurencyjna dla zagnieżdżonych zliczeń:
Przykładowe dane wyjściowe:
źródło