Что делает 'ls - каталог' обозначает?

В моей версии Ubuntu у человека ls есть следующая информация о - каталог:

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

Таким образом, я немного смущен, как это работает. Я использовал команду ls --directory и я ожидал список со всеми каталогами, но вместо этого я добрался .

Таким образом, что точно делает ls --directory или ls -d ?

16
задан 6 March 2017 в 04:19

5 ответов

$ 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 */
24
ответ дан 23 November 2019 в 02:26

Используя 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/
6
ответ дан 23 November 2019 в 02:26

Позвольте мне объяснить с примерами:

  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, затем Вы будете видеть все, что присутствует в текущем каталоге ..

5
ответ дан 23 November 2019 в 02:26

ls -d каталоги списка их сам вместо их содержания. Файлы перечислены как нормальные. Изучите man ls к se описанию всех опций.

. каталог это сам, то же, которое Вы используете при выполнении команды из текущего каталога, ./runscript.sh

.., является родительским каталогом, родителем к текущему directore, поскольку в cd .. для перемещения в повышаются в каталоге hieracy

4
ответ дан 23 November 2019 в 02:26

Используя 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 */
11
ответ дан 23 November 2019 в 02:26

Другие вопросы по тегам:

Похожие вопросы: