jak Lista tylko katalogów w Linuksie

polecenie ls w Linuksie służy do wyświetlania zawartości dowolnego katalogu.

domyślnie wyświetla całą zawartość, czy to plik, katalog, link, Czy nazwany potok.

ale co, jeśli chcesz wyświetlać tylko katalogi? Jak ty to robisz?

jak wszystko w Linuksie, istnieje kilka sposobów na wykonanie tego samego zadania. Wyświetlanie tylko katalogów nie jest inne:

  • Ls-D */
  • ls-l | grep '^d’
  • znajdź . – maxdepth 1-typ d
  • echo * /
  • drzewo-D-L 1

nie martw się. Wyjaśnię wszystko szczegółowo. Oto zawartość katalogu, którego użyję w przykładach tutaj:

wyświetlanie zawartości katalogu w Linuksie

użyj polecenia ls do wyświetlania tylko katalogów

zawsze dobrze jest zrobić to ze znanym poleceniem ls, ponieważ jest to polecenie używane do wyświetlania zawartości katalogu.

aby wyświetlić tylko podkatalogi, użyj opcji -d z poleceniem ls w ten sposób:

ls -d */

oto wynik, który pokazuje:

 Documents]$ ls -d */another_dir/ my_dir/

dlaczego */? Ponieważ bez niego ls -d zwróci tylko nazwę katalogu. Opcja -d wymienia katalogi, a nie ich zawartość (w tym plik, katalogi itp.).

*/ to wzór. * wyświetla całą zawartość (w tym zawartość podkatalogów), a / ogranicza wzorzec do katalogów.

to zdjęcie całkiem dobrze przedstawia różnicę.

Lista tylko katalogów w Linuksie

możesz połączyć go z opcją długiej listy -l i większością innych opcji:

 Documents]$ ls -ld */drwxrwxr-x. 1 abhishek abhishek 16 Nov 7 18:22 another_dir/drwxrwxr-x. 1 abhishek abhishek 44 Nov 7 18:22 my_dir/

jeśli nie chcesz, aby końcowy ukośnik (/) na końcu nazw katalogów, możesz użyć polecenia Wytnij, aby go wyciąć:

 Documents]$ ls -ld */ | cut -f1 -d'/'drwxrwxr-x. 1 abhishek abhishek 16 Nov 7 18:22 another_dirdrwxrwxr-x. 1 abhishek abhishek 44 Nov 7 18:22 my_dir

Lista tylko podkatalogów w określonym katalogu

powyższe polecenie działa w bieżącym katalogu. Co zrobić, jeśli nie jesteś w tym samym katalogu?

w tej sytuacji możesz użyć */ na końcu ścieżki katalogu z ls -d:

ls -d Path/To/Dir/*/

oto przykład, w którym Wyprowadzam się z katalogu dokumentów, a następnie wymieniam tylko katalogi wewnątrz katalogu dokumentów:

 ~]$ ls -ld Documents/*/drwxrwxr-x. 1 abhishek abhishek 16 Nov 7 18:22 Documents/another_dir/drwxrwxr-x. 1 abhishek abhishek 44 Nov 7 18:22 Documents/my_dir/

zauważyłeś, że nie wyświetla ukrytego katalogu? To jedna z wad tej metody. Możesz użyć ls -d .*/, aby wyświetlić ukryte katalogi, ale wyświetla tylko Ukryte katalogi.

użyj kombinacji polecenia ls i grep

zawsze możesz polegać na starym, dobrym poleceniu grep do filtrowania danych wyjściowych dla określonej zawartości.

jeśli długo wypisujesz zawartość, możesz zidentyfikować katalogi, ponieważ zaczynają się od d.

możesz użyć grep do filtrowania zawartości zaczynającej się od d:

ls -l | grep '^d'

ale to daje o wiele więcej pól niż tylko nazwy katalogów:

 Documents]$ ls -l | grep '^d'drwxrwxr-x. 1 abhishek abhishek 16 Nov 7 18:22 another_dirdrwxrwxr-x. 1 abhishek abhishek 44 Nov 7 18:22 my_dir

użyj polecenia find do wyświetlania tylko katalogów

oto jak użyć polecenia find do wyświetlania tylko podkatalogów:

find directory_path -maxdepth 1 -type d

mam nadzieję, że znasz polecenie Znajdź. I tak to wyjaśnię.

w przypadku type d polecenie find prosi o szukanie tylko katalogów.

za pomocą maxdepth 1 prosisz polecenie find o zachowanie wyszukiwania tylko na bieżącym poziomie (i nie wchodzenie do podkatalogów).

 Documents]$ find . -maxdepth 1 -type d../my_dir./another_dir./.my_hidden_dir
lista sudirectories tylko za pomocą polecenia find w Linuksie

jak widać na powyższym wyjściu, pokazuje również ukryty katalog.

użyj polecenia tree do wyświetlania tylko katalogów

jeśli twoim celem jest wyświetlanie tylko katalogów, możesz również użyć polecenia tree.

domyślnie polecenie drzewo daje pełną strukturę katalogów. Możesz zmodyfikować go tak, aby wyświetlał tylko katalogi i tylko na bieżącym poziomie.

tree -dai -L 1
  • d-szukaj tylko katalogów
  • a-Szukaj również ukrytych plików i katalogów
  • i-usuń strukturę drzewa z wyświetlacza
  • L 1-nie wchodź do podkatalogów

oto wyjście:

 Documents]$ tree -dai -L 1.another_dirmy_dir.my_hidden_dir3 directories
używanie polecenia tree do wyświetlania tylko podkatalogów w Linuksie

używanie polecenia echo do wyświetlania katalogów

mało prawdopodobny kandydat? Zdziwisz się, że komenda echo w Linuksie może być również używana do wyświetlania zawartości katalogu. Spróbuj użyć echo * i przekonaj się sam.

podobnie jak polecenie ls, możesz również użyć wzorca */, aby wyświetlić listę tylko katalogów w bieżącym katalogu roboczym.

echo */

oto wynik, który jest identyczny z tym, co otrzymałeś z poleceniem ls -d :

używanie polecenia echo do wyświetlania katalogów tylko w Linuksowym wierszu poleceń

może być więcej sposobów wyświetlania tylko katalogów, a nie Plików. W rzeczywistości metody omówione tutaj mogą mieć pewne „jeśli” I ” ale ” w oparciu o to, czego szukasz.

jeśli twoim celem jest tylko wyświetlanie katalogów, większość poleceń, które omówiłem, zadziała. Jeśli chcesz coś bardziej konkretnego, jak tylko uzyskanie nazwy katalogów z ukośnika itp, będziesz musiał zrobić trochę formatowania na własną rękę.

mam nadzieję, że ta wskazówka dotycząca Linuksa okaże się pomocna. Pytania i sugestie są zawsze mile widziane.

Write a Comment

Twój adres e-mail nie zostanie opublikowany.