В моей папке пользователя у меня есть папки, такие как D ropbox, D ocuments, D ownloads & amp; d ump.
ls a*
должен указать все файлы, имя которых начинается с a
. Правильно? Но когда я даю команду ls d*
, вместо того, чтобы просто отображать dump
, она показывает мне каталог ls dump. И когда я даю команду как ls D*
, тогда она отображает ls всех складок, начиная с D
. Какую часть я пропустил в понимании?
Редактирование: прикрепление скриншота [/g0]
Согласно странице bash man:
bash сканирует каждое слово для символов *,? и [. Если появляется один из этих символов, это слово рассматривается как шаблон и заменяется алфавитно отсортированным списком имен файлов, соответствующих шаблонуи из информационного узла для ls
bash сканирует каждое слово для символов *,? и [. Если появляется один из этих символов, это слово рассматривается как шаблон и заменяется алфавитно отсортированным списком имен файлов, соответствующих шаблону
. Для аргументов командной строки, отличных от опции, которые являются каталогами, по умолчанию «ls» перечисляет содержимое каталогов, а не рекурсивно, и опускает файлы с именами, начинающимися с «.». Для других аргументов, отличных от опций, по умолчанию `ls 'перечисляет только имя файла. Если аргументы без аргумента не указаны, «ls» перечисляет содержимое текущего каталога.Программа `ls 'содержит информацию о файлах (любого типа, включая каталоги). Параметры и аргументы файла могут быть перемешаны произвольно, как обычно.
ls dump
, поэтому, когда yo дает ls d*, ls разворачивается в отсортированный список всех имен файлов / каталогов, начиная с d. Таким образом, команда становится
ls Desktop Documents Downloads Dropbox
, а дамп - это имя каталога, поэтому вы получаете список всех файлов в каталоге «dump», но когда вы даете ls D*, D * расширяется до «Desktop» Documents Downloads Dropbox ", поэтому команда становится
ls d * и D * оба списка файлов и папок, соответствующих d * и D * соответственно, поведение одного и того же должно быть ошибкой в вашем тесте.
Если вы хотите перечислить только имена папок, а не содержимое папки, которое вам нужно использовать «-d»:
ls -d D*
Как было предложено выше, опция -d - это путь. Добавление
alias ld='ls -d'
к моему файлу ~/.bashrc хорошо работает для меня.
Как было предложено выше, опция -d
- это путь. Добавление
alias ld='ls -d'
в файл ~/.bashrc
для меня хорошо работает.
Как было предложено выше, опция -d
- это путь. Добавление
alias ld='ls -d'
в файл ~/.bashrc
для меня хорошо работает.