Czy jest jakiś sposób, aby wyświetlić tylko foldery w katalogu za pomocą poleceń bash? (ponieważ ls
polecenie wyświetla wszystkie pliki i foldery)
linux
command-line
ls
SpiXel
źródło
źródło
ls -d -- */
ils -d */
?--
jest konwencjonalnie używany do oznaczania końca opcji, tak że jeśli plik ma nazwę,-l
ls nie zinterpretuje go jako opcji formatu długiego listowania.Odpowiedź Stephena Martina dała ostrzeżenie i wymieniła również bieżący folder, więc sugeruję
(To dotyczy Linuksa; nie mogłem znaleźć -maxdepth i -mindepth na stronie podręcznika POSIX dla find)
źródło
ls -d -- */
opcja, podobnie jakfind
i ukryte katalogi. Co może być czasem przydatne, ale czasem może powodować problemy. Mam nadzieję, że ten komentarz może pomóc innym. +1Wyświetli tylko foldery. I jak zauważył Teddy, będziesz potrzebować -maxdepth, aby zatrzymać powrót do sub-reż
źródło
-maxdepth 1
.Odpowiedź Daniela jest poprawna. Oto kilka przydatnych dodatków.
Aby uniknąć wyświetlania ukrytych folderów (takich jak
.git
), spróbuj tego:Aby zamienić przerażające kropki na początku danych
find
wyjściowych w niektórych środowiskach, użyj tego:źródło
„Nie powinieneś” analizować wyniku ls, a przynajmniej tak się mówi. Powodem tego jest to, że dane wyjściowe mają być czytelne dla ludzi i może to niepotrzebnie komplikować parsowanie, o ile pamiętam.
jeśli nie chcesz ls lub znaleźć, możesz spróbować filtrować „*” za pomocą „[-d]”.
Zrobiłem właśnie to, z jakiegoś powodu i nie działało (nazwy plików ze spacjami i nawiasami, jak sądzę, lub coś innego, co przeoczyłem), a potem zrobiłem coś w stylu
źródło
Żeby podkreślić to, co mnie tutaj pomyliło, jeśli chodzi o wybór globalnych wzorców; powiedz, że masz to:
Powiedzmy, że chcesz wybrać tylko
mydir*
katalogi. Pamiętaj, że jeśli pominiesz końcowy ukośnik,ls -d
wyświetli się także lista plików:... jednak z kończącym ukośnikiem wyświetlane są tylko katalogi:
źródło
printf "%s\n" */
wyświetli listę wszystkich katalogów w $ PWD.echo */
będzie również działać, ale w długiej linii, trudniej, gdy nazwy mają spacje.źródło
Możesz także użyć:
Lub:
źródło