Powiedzmy, że w moim folderze ~/list
mam dużą liczbę folderów z własnymi podfolderami i podfolderami itp. I prawie na każdym poziomie jest wiele plików. Jednak niektóre z tych plików i folderów są puste, więc jak mogę rekurencyjnie je przeszukiwać, aby znaleźć puste pliki i foldery? A następnie wyświetlaj je na liście lokalizacji plików, aby wiedzieć, gdzie jest każda z nich (powinno być również jasne, który jest plikiem, a który folderem, ponieważ nie wszystkie pliki mają rozszerzenia plików). Używam Ubuntu GNOME 15.10 z GNOME 3.18.
Zauważ , że byłoby to bardzo przydatne, gdyby powiedział mi również, czy plik wygląda na pusty, ale nie jest (na przykład, jeśli zawiera spacje lub podziały wierszy lub coś takiego). Rozróżniałby między naprawdę pustym plikiem a plikiem, który wygląda na pusty w danych wyjściowych.
Odpowiedzi:
Od
man find
Wystarczy więc znaleźć zarówno puste pliki, jak i katalogi
Aby wskazać typ, można użyć specyfikatora
%y
formatu wyjściowegona przykład
lub skorzystaj z zewnętrznego programu, takiego jak
ls
, który zawiera--classify
opcjęto znaczy
Jeśli twoja definicja „pustych” zostanie rozszerzona o pliki zawierające tylko białe znaki, staje się bardziej skomplikowana - i bardziej intensywna obliczeniowo, ponieważ teraz musisz faktycznie otworzyć przynajmniej niepuste pliki i zbadać ich zawartość. Najskuteczniejszym sposobem, w jaki mogę myśleć z góry, byłoby coś takiego
(albo pusty, albo plik AND grep nie wykrywa co najmniej jednego niepustego znaku). Prawdopodobnie istnieje lepszy sposób.
źródło
Z
~/list
folderu:do wyświetlania pustych katalogów i
do wyświetlania pustych plików.
do wyświetlania pustych folderów i plików, w tym białych znaków i pustych linii
źródło
[ `grep -c [[:alnum:]] "{}"` -eq 0 ]
przepuści pliki zawierające tylko znaki spoza[A-Za-z0-9]
zestawu.