В моей версии Ubuntu у человека ls есть следующая информация о --directory:
list directory entries instead of contents, and do not dereference symbolic links
Так что я немного смущен, как это работает. Я использовал команду ls --directory, и я ожидал список со всеми каталогами, но вместо этого я получил .
. Что именно делают ls --directory или ls -d?
Использование 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 */
Использование 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/
Позвольте мне объяснить с примерами:
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, то вы увидите все, что присутствует в текущем каталоге ..
ls -d перечисляет каталоги самостоятельно, а не их содержимое. Файлы указаны как обычно. Посмотрите man ls на описание всех опций.
. - это каталог, который он сам, тот же, который вы используете при запуске команды из текущего каталога, ./runscript.sh
.. является родительским каталогом, родительским для текущего directore, как в cd .. для перемещения с шагом в иерархии каталогов