Що означає `ls --directory`?


17

У моїй версії Ubuntu man ls має наступну інформацію про --directory:

list directory entries instead of contents, and do not dereference symbolic links

Тож я трохи розгублений, як це працює. Я використовував команду, ls --directoryі я очікував список з усіма каталогами, але замість цього я отримав.

Отже, що саме робить ls --directoryчи ls -dробить?

Відповіді:


24
$ man ls
...
-d, --directory
              list directories themselves, not their contents

Поточний каталог представлений як .такий, що ls -dє списком.

Каталоги всередині поточного каталогу містять вміст каталогу, а тому не відображаються за допомогою цієї опції.

Я використовую -dопцію в псевдонімі для відображення прихованих файлів і каталогів

alias l.='ls -dC .* --color'

Без -dцього буде також перераховано вміст прихованих каталогів, що не те, що я хочу.

Ще одне його використання - це коли я хочу бачити метадані каталогу за допомогою -lпараметра, а не його вмісту:

$ ls -ld playground
drwxr-xr-x 72 zanna zanna 12288 Mar  1 23:10 playground

Якщо ви хочете, щоб список каталогів у поточному каталозі ви можете використовувати

ls -d */

ls -dC .* --colorтакож перераховані приховані файли, а не лише каталоги.
Pau Chorro

1
так @PauChorro Я насправді кажу про це у своїй відповіді. Я використовую його для відображення всіх прихованих файлів і каталогів
Zanna

1
@PauChorro Я додав спосіб перерахувати лише каталоги
Zanna

1
У моїй версії Ubuntu man lsмає наступну інформацію: list directory entries instead of contents, and do not derefer‐ ence symbolic links. Тож у вашій версії краще пояснення того, що це насправді робить.
Pau Chorro

1
@ Pilot6 він також перелічить файли
Zanna

11

Використовувати lsлише с -dмайже неможливо. Він дає інформацію про сам каталог. Він не перелічує його зміст.

Ось чому ви не бачите переліку каталогів. Каталоги, які ви очікували побачити, - це "вміст" поточного каталогу

Якщо ви запускаєте просто, ls -dвін показує поточний каталог ..

Якщо є сенс запустити його за допомогою інших клавіш -l.

ls -ld покаже дозволи поточного каталогу.

pilot6@Pilot6:~$ ls -ld
drwxrwxr-x 1 pilot6 pilot6 2570 Mar  4 12:14 .

Ви також можете бачити дозволи будь-якого іншого каталогу

ls -ld /bin

pilot6@Pilot6:~$ ls -ld /bin
drwxr-xr-x 1 root root 2584 Feb 25 15:19 /bin

При запуску ls -lбез -dвас буде список всіх дозволів для файлів і папок в поточній директорії. Якщо він вам не потрібен, це хороший приклад для ls -ldвикористання.

Ви можете перелічити каталоги в поточному

ls -d */

6

Використання ls -dсаме по собі є досить марним, оскільки без параметра воно завжди повертається .. Після введення параметра це має сенс. Наприклад, якщо ваше ім’я користувача є rickі ви хочете переглянути всі каталоги в домашньому користуванні:

$ ls -d /home/rick/*/
/home/rick/AAC/        /home/rick/EnhanceIO/         /home/rick/silentcast/
/home/rick/assembly/   /home/rick/EnhanceIO-master/  /home/rick/Templates/
/home/rick/bin/        /home/rick/log/               /home/rick/test/
/home/rick/Desktop/    /home/rick/Music/             /home/rick/tmpe/
/home/rick/Documents/  /home/rick/Pictures/          /home/rick/Videos/
/home/rick/Downloads/  /home/rick/Public/

5

Поясню на прикладах:

  1. ls: список вмісту каталогу

  2. ls -dабо ls --directory: перераховуйте самі каталоги, а не їх зміст

Приклади:

ls -d android-sdk-linux/

# result
android-sdk-linux/

ls android-sdk-linux/

# result
add-ons  build-tools  platforms  platform-tools  SDK Readme.txt  temp  tools

Ваш випадок ls -dце говорить список тільки покажіть мені каталог , я перебуваю в не його зміст (тобто .в термінах Linux), тому результат: ..

Але якщо ви сказали:, lsто ви побачите все, що є в поточному каталозі ..


4

ls -dперелічуйте каталоги в них самостійно замість їх вмісту. Файли перераховані як звичайні. Ознайомтеся man lsз описом усіх варіантів.

. це сам каталог, той самий, який ви використовуєте під час виконання команди з поточного каталогу, ./runscript.sh

..є батьківським каталогом, батьківським для поточного directore, як для того, cd ..щоб рухатися з кроком в ієрархії каталогів

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.