Czy jest jakieś polecenie linux, które mogę wywołać ze skryptu Bash, który wypisuje strukturę katalogów w formie drzewa, np.
folder1
a.txt
b.txt
folder2
folder3
linux
command-line
użytkownik243655
źródło
źródło
find
. Lubfind . -not -path '*/\.*'
ukryć pliki i foldery zaczynające się od.
. Jeśli chcesz mieć wynik ze spacjami, jak w pytaniu, użyj go ze skryptem „znajdź prettifier”:find . -not -path '*/\.*' | python -c "import sys as s;s.a=[];[setattr(s,'a',list(filter(lambda p: c.startswith(p+'/'),s.a)))or (s.stdout.write(' '*len(s.a)+c[len(s.a[-1])+1 if s.a else 0:])or True) and s.a.append(c[:-1]) for c in s.stdin]"
Odpowiedzi:
Czy tego szukasz drzewa ? Powinien być w większości dystrybucji (być może jako instalacja opcjonalna).
próbka pobrana ze strony internetowej opiekuna.
Możesz dodać opcję, w
-L #
której#
jest zastępowana liczbą, aby określić maksymalną głębokość rekurencji.Usuń,
-d
aby wyświetlić również pliki.źródło
-d
aby wyświetlić także pliki!brew install tree
apt-cyg install tree
(zakładając, że zainstalowałeś apt-cyg)apt-get install tree
go zainstaluje.Możesz użyć tego:
W ciągu kilku sekund pokaże graficzną reprezentację bieżących podkatalogów bez plików , np . /var/cache/:
Źródło
źródło
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\// /g' -e 's/^/ /'
.git
?find . | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\([^ ]\)/|-\1/"
Aby dodać rozwiązanie Hassou do swojego .bashrc, spróbuj:
źródło
alias lst='ls -R | grep ":$" | sed -e '"'"'s/:$//'"'"' -e '"'"'s/[^-][^\/]*\//--/g'"'"' -e '"'"'s/^/ /'"'"' -e '"'"'s/-/|/'"'"''
To polecenie działa, aby wyświetlać zarówno foldery, jak i pliki .
Przykładowe dane wyjściowe:
Źródło: Komentarz @javasheriff tutaj . Zanurzony jako komentarz i opublikowanie go jako odpowiedzi pomaga użytkownikom łatwo go dostrzec.
źródło
find . |grep -vE 'pyc|swp|__init' | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\([^ ]\)/|-\1/"
dobrzeUpiększam wynik odpowiedzi @ Hassou za pomocą:
To bardzo przypomina dane wyjściowe
tree
:Możesz także utworzyć alias:
BTW,
tree
nie jest dostępny w niektórych środowiskach, takich jak MinGW. Więc zastępca jest pomocny.źródło
Możesz także użyć kombinacji poleceń find i awk, aby wydrukować drzewo katalogów. Aby uzyskać szczegółowe informacje, patrz „ Jak wydrukować strukturę katalogów drzewa wielopoziomowego za pomocą komend linux find i awk ”
źródło