Рейтинг:1

`ls` с подстановочным знаком с подкаталогами

флаг au
Tom

Когда я выполняю команду лс *, это покажет

  1. файлы в текущем каталоге
  2. каталоги в текущих каталогах
  3. файлы и каталоги в каталогах в текущих каталогах.

Когда я использую лс Я не хочу видеть внутри каталогов в текущем каталоге. Я немного запутался, потому что уже более 8 лет я использую ubuntu, я никогда раньше не видел ничего подобного.

Это как лс должно сработать? Есть ли способ остановить 3 от происходящего?

Например, если у меня есть файл1.файл папка1 папка2 папка3 текстовый файл1.txt

Я хочу, чтобы ls f* показывал только

файл1.файл
папка1
папка2
папка3

Убунту 20.04 ЛТС

Doug Smythies avatar
флаг gn
`ls -l -d *` должен делать то, что вы хотите.
sudodus avatar
флаг jp
+1 за совет Дуга Смитиса или еще проще (только с именами) `ls -d *` и `ls -d f*`
Рейтинг:0
флаг id

Один из способов заключается в использовании найти команда вместо лс. Ты можешь использовать -максимальная глубина 1 чтобы вы не читали в папки, а использовали только -имя вариант для диких карт.

Пример:

найти . -maxdepth 1 -имя 'f*'

Вернет все в текущей папке . начиная с нижнего регистра ф даже имена папок, но не показывает никакого содержимого в папках.

Рейтинг:0
флаг cn

Вы ожидаете, что он будет работать как в MS-DOS, однако это Linux.

Подстановочные знаки в Linux расширяются вашей оболочкой, чтобы соответствовать всем элементам, соответствующим подстановочным знакам. лс не видит ваш подстановочный знак. Он видит только список имен файлов и каталогов, соответствующих подстановочному знаку. Таким образом, он покажет содержимое всех перечисленных элементов, то есть имя файла или содержимое папки. В MS-DOS подстановочные знаки могут вызвать директор сама команда, чтобы отфильтровать список, чтобы перечислить только имена, соответствующие подстановочному знаку.

Чтобы отфильтровать вывод лс, например, чтобы видеть только совпадающие имена файлов и папок е*, использовать grep, т. е. направить вывод ls в grep следующим образом:

лс | грэп ^f.*

^ и .* являются регулярными выражениями. ^f средства: ф но только в самом начале. .* средства . любой персонаж * любое количество раз.

Tom avatar
флаг au
Tom
Спасибо за ответ. Я не знаю, почему это никогда не было проблемой для меня до сих пор.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.