Odpowiedzi:
Jeśli chcesz być w stanie łatwo odróżnić foldery od plików, użyj czegoś takiego ls -alhF. Zwykle definiuję to ljako alias, tj. Kładę linię alias l='ls -alhF'w moim .bashrc.
aby wyświetlić tylko foldery, spróbuj: ls -d */
-dsame listy katalogów, a nie ich zawartość. Aby to wyjaśnić, zastanów się, co się stanie, jeśli piszemy
ls */.lsschodzi o jedną warstwę w dół, do każdego podkatalogu i wyświetla kolejno wszystkie pliki w każdym z nich
Źródło: man ls
*/*/jest znany jako „glob” w UNIX. ( więcej informacji w Wikipedii ). Zasadniczo oznacza to jednak „dowolną nazwę pliku kończącą się ukośnikiem”. Zasadniczo w UNIX katalogi to tak naprawdę tylko pliki. Ale są one specjalnie nazwane i kończą się ukośnikiem, aby system operacyjny wiedział, że są to katalogi (lub foldery w mowie codziennej). Gwiazdka *jest technicznie symbolem wieloznacznym oznaczającym „dowolny ciąg znaków”.
Ten akapit nie będzie dotyczył twojego pytania, ale jeśli nigdy o nim nie czytałeś, dobrze będzie go zobaczyć. Globs różnią się od wyrażeń regularnych, co (częściowo) wyjaśniono w Jaka jest różnica między wyrażeniami regularnymi a globowaniem? Napisano całe książki o wyrażeniach regularnych, ale istnieje wiele różnych sposobów kodowania wyrażeń pasujących do wzorca.
Ponieważ jestem bardzo niedoświadczonym użytkownikiem, uwielbiam tę stronę. Mówi ci wszystko, co chcesz wiedzieć o poleceniach bash, w niektórych przypadkach nawet daje przykłady. Bardzo przydatne.
W Twoim przypadku:
ls aby wyświetlić listę plikówls -a zawierać ukryte plikils -l dla długiego formatu listyls -al | grep ^d
dołącz ukryte pliki „-a” grep ^ d zacznij od „d”, co oznacza katalog, gdy nazwa zaczyna się od kropki, katalog jest ukryty
aby zobaczyć rekursywnie, zobacz to
find ./ -type d | less
./ ..................... means starts find in current folder
-type .................. indicates the type to be searched
d ...................... means directory
| ...................... redirects the command
less ................... enables paging using the keyboard arrows and leave with q
ls -1 -d */
gdzie
-1
wyświetla jeden katalog w wierszu.
Aby wyświetlić foldery katalogu domowego, lswystarczy komenda - to będzie proste.
$ ls
Desktop Downloads hadoop Pictures Templates
Documents examples.desktop Music Public Videos
Możesz nawet podać wiele katalogów ls ~ /usr
$ ls ~ /usr
/home/hadoop1:
Desktop Downloads hadoop Pictures Templates
Documents examples.desktop Music Public Videos
/usr:
bin games include lib local locale sbin share src
Aby uzyskać wynik w długim formacie, możemy użyć -lopcji
$ ls -l
total 48
drwxr-xr-x 2 hadoop1 hadoop1 4096 Jul 1 2017 Desktop
drwxr-xr-x 2 hadoop1 hadoop1 4096 Jul 1 2017 Documents
drwxr-xr-x 2 hadoop1 hadoop1 4096 Jul 1 2017 Downloads
-rw-r--r-- 1 hadoop1 hadoop1 8980 Jul 1 2017 examples.desktop
drwxr-xr-x 10 hadoop1 hadoop1 4096 Jul 1 2017 hadoop
drwxr-xr-x 2 hadoop1 hadoop1 4096 Jul 1 2017 Music
drwxr-xr-x 2 hadoop1 hadoop1 4096 Jul 1 2017 Pictures
drwxr-xr-x 2 hadoop1 hadoop1 4096 Jul 1 2017 Public
drwxr-xr-x 2 hadoop1 hadoop1 4096 Jul 1 2017 Templates
drwxr-xr-x 2 hadoop1 hadoop1 4096 Jul 1 2017 Videos