Что означает `ls -directory`?

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

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

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

. Что именно делают ls --directory или ls -d?

1
задан 6 March 2017 в 15:19

4 ответа

Использование ls только с -d почти бесполезно. Он дает информацию о самом каталоге. Он не перечисляет его содержимое.

Вот почему вы не видите список каталогов. Каталоги, которые вы ожидали увидеть, являются «содержимым» текущего каталога

. Если вы просто запускаете ls -d, он показывает текущий каталог с помощью ..

Если имеет смысл

ls -ld будет показывать разрешения текущего каталога.

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

Вы также можете видеть разрешения любого другого каталога, такого как [ ! d5]

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 May 2018 в 00:56

Использование 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 May 2018 в 00:56

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

ls: список содержимого каталога ls -d или ls --directory: сами списки каталогов, а не их содержимое

Примеры: [ ! d6]

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 May 2018 в 00:56

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

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

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

4
ответ дан 23 May 2018 в 00:56

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

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