Muszę zorganizować zewnętrzny dysk twardy, aby nie było na nim więcej niż 500 folderów. Panel „Właściwości” Ubuntu pokazuje tylko liczbę plików, a nie liczbę folderów.
Czy istnieje prosta linia poleceń, która poda mi liczbę podkatalogów?
Muszę liczyć rekurencyjnie, a napęd to zewnętrzny dysk twardy zamontowany w /media/MUSIC/
. To jest samochodowy zestaw stereo, którego dokumentacja mówi, że czyta tylko pierwsze 500 folderów.
linux
command-line
Dean Rather
źródło
źródło
grep -c
ponadwc -l
. Może to tylko ja.\nd
(gdzie\n
jest znak NL).ls
dane wyjściowe nie powinny być przesyłane strumieniowo . Co więcej, będzie to znacznie wolniejsze, ponieważ musiZnajdź wszystkie foldery łącznie, w tym podkatalogi?
... lub znaleźć wszystkie foldery w katalogu głównym (bez podkatalogów)?
źródło
*foo*
kursywy: foo )find /path -not -iname '*.mp3' | wc -l
do filtrowania plików MP3 lub do korzystania zarówno z plików MP3, jak i WAVfind /path -not -iname '*.mp3' -not -iname '*.wav' | wc -l
Nowe wiersze są poprawnymi znakami w nazwach katalogów. Sugeruję, aby pozwolić
find
wydrukować pustą linię dla każdego znalezionego katalogu, a następnie pozwolićwc
policzyć te linie.źródło
Spróbuj wykonać następujące czynności [patrz poniżej]:
Spowoduje to wydrukowanie jednokolumnowej listy bieżącego katalogu z ukośnikami końcowymi dla elementów, które są podkatalogami, a następnie zliczenie linii z ukośnikami.
EDYCJA: prawdopodobnie powinieneś iść z odpowiedzią na quackote, ponieważ jest to trochę bardziej jednoznaczne, ale poprawiłem moje (po uwzględnieniu sugestii quacka).
źródło
-1
ponieważ ls wykryje potok i nie sformatuje kolumn. możesz również pobierać rekursywne zestawienia-R
, ale wtedy prawdopodobnie chcesz grep,"/$"
aby dopasować tylko końcowe ukośniki (lub liczenie zostanie wyłączone). wersja ostateczna:ls -Rp | grep "/$" | wc -l
.
(tj/mount/point
) w liczbie, z ls wersję w moim komentarzu powyżej nie będzie. liczby te różnią się o 1, które można użyć/mount/point/*
w poleceniu find, aby to poprawić (zakładając, że nie ma ukrytych katalogów kropek).Napisałem ffcnt, aby przyspieszyć liczenie plików rekurencyjnych w określonych okolicznościach: dyski obrotowe i systemy plików, które obsługują mapowanie zasięgu.
Może być o rząd wielkości szybszy niż
ls
lubfind
podejście oparteźródło
Gdy istnieje duża liczba katalogów, takie narzędzia
tree
mogą zakończyć się wiecznością, a nawet zawiesić, więc możesz chcieć użyć czegoś bardziej wydajnego.Najbardziej skutecznym sposobem na policzenie katalogów, o którym myślę, jest następująca, ponieważ
find
wydrukuje tylko jeden.
dla każdego znalezionego folderu zamiast pełnej ścieżki i nazwy pliku iwc
musi tylko iterować liczbę znaków:Aby wykluczyć
/mount/point
się z obliczeń i policzyć tylko podkatalogi:źródło
Uznałem, że jest
du --inodes
przydatny, ale nie jestem pewien, która wersjadu
tego wymaga. W systemie Ubuntu 17.10 działa:Połącz z,
| sort -nr
aby posortować malejąco według liczby zawierających i-węzłów.źródło
Lubię używać drzewa do pobierania liczby katalogów
Lub źle używam find, aby pokazać, że większość folderów znajduje się w folderze
źródło
Aby znaleźć liczbę folderów i katalogu w bieżącym katalogu
Wpisz następujące polecenie w swoim terminalu
źródło