2010-05-26 13 views

Odpowiedz

11

Czy Twoje wyszukiwanie ma predykat -empty?

Powinieneś być w stanie wykorzystać find . -type d -empty

1

Jeśli jesteś zsh użytkownika, zawsze można to zrobić. Jeśli nie, to może przekona Cię:

echo **/*(/^F) 

**/* wzrośnie do każdego węzła potomnego obecnego katalogu roboczego i () jest kwalifikator glob. / ogranicza mecze do katalogów, a F ogranicza mecze do niepustych. Negowanie go przez ^ daje nam wszystkie puste katalogi. Zobacz stronę podręcznika man zshexpn, aby uzyskać więcej informacji.

1

Można również użyć:

find . -type d -links 2 

. i ... oba są liczone jako łącze, podobnie jak pliki.

0

Odpowiedź Pimin Konstantin Kefalou drukuje foldery tylko z 2 linkami i innymi plikami (d, f, ...).

Najprostszym sposobem znalazłem to:

for directory in $(find . -type d); do 
    if [ -n "$(find $directory -maxdepth 1 -type f)" ]; then echo "$directory" 
    fi 
done 

Jeśli masz nazwę ze używać spacji cytaty w „katalogu $”.

Możesz wymienić. przez twój folder referencyjny.

Nie udało mi się tego zrobić za pomocą jednej instrukcji wyszukiwania.

Powiązane problemy