Відповіді:
Якщо ви хочете легко відрізнити папки від файлів, використовуйте щось подібне ls -alhF. Я зазвичай визначаю lяк псевдонім для цього, тобто. Я ставлю рядок alias l='ls -alhF'у своєму .bashrc.
для переліку лише папок спробуйте: ls -d */
-dперераховуйте самі каталоги, а не їх зміст. Щоб пояснити це, подумайте, що станеться, якщо ми наберемо текст
ls */.lsйде один шар вниз, у кожен підкаталог і перераховує всі файли в кожному з них послідовно
Джерело: man ls
*/*/в UNIX відомий як "глобус". (детальніше див. у Вікіпедії ). Але в основному це означає "будь-яке ім'я файлу, що закінчується наперед косою косою". В UNIX каталоги - це фактично просто файли. Але вони спеціально мають назву, що закінчується на косою косою рисою, тому операційна система знає, що це каталоги (або папки, як говорять щоденні люди). А зірочка *технічно є мальовничою карткою, що стоїть на "будь-якій рядку символів".
Цей пункт не стосуватиметься конкретно вашого питання, але якщо ви ніколи про це не читали, буде добре його переглянути. Глобуси відрізняються від регулярних виразів, як (частково) пояснено в чому різниця між регулярними виразами і глобубінгом? Існували цілі книги, написані на регулярних виразах, але tl; dr, існує купа різних способів кодування виразів, що відповідають шаблону.
Оскільки я дуже недосвідчений користувач, я люблю цей веб-сайт. Він говорить вам про все, що ви хочете знати про команди bash, в деяких випадках навіть дає приклади. Дуже корисний.
У вашому випадку:
ls перелічити файлиls -a включати приховані файлиls -l для довгого формату лістингуls -al | grep ^d
включіть приховані файли '-a' grep ^ d почніть з 'd', який означає каталог, коли ім'я починається з крапки-каталогу
для переліку рекурсивно бачити це
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 */
де
-1
перераховує по одному каталогу в рядку.
Для перегляду папок домашнього каталогу lsдостатньо команди - це зробить її простою.
$ ls
Desktop Downloads hadoop Pictures Templates
Documents examples.desktop Music Public Videos
Ви навіть можете вказати кілька каталогів 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
Щоб отримати вихід у довгому форматі, ми можемо скористатися -lопцією
$ 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