Изменение текущего каталога на каталог с идентификатором в качестве подстроки

Мой терминал в данный момент находится в домашнем каталоге, и домашний каталог содержит каталог, в котором подстрока имеет значение «round». Есть ли способ напрямую перейти в этот каталог без ввода полного имени каталога? Как без выполнения:

cd dir_name

Или

cd identifier

Почему приведенная ниже команда открывает вспомогательное приглашение вместо изменения каталога

cd ls | grep identifier
1
задан 1 June 2014 в 17:08

1 ответ

Печально с ударом Вы не можете. Ближайшая вещь, которую можно сделать, если идентификатор в начале имени файла, нажмите Вкладку так автоматическое заполнение Bash. К сожалению, это не будет работать, если идентификатор будет в середину или конец имени файла, в этом случае, я рекомендовал бы использовать zsh вместо этого, который позволяет это.

Эти cd ls | grep identifier не сделал работавший по двум причинам, во-первых, Вы пытались измениться на каталог, названный ls и затем передать stdout по каналу (который пуст) к поиску grep "идентификатора". Это было бы зафиксировано, если бы Вы использовали подоболочку вместо этого в качестве мягкой предложенный cd $(ls | grep identifier). Но это имеет другую проблему, ls вывод находится в столбцах и работах grep строками. Таким образом, если я, например, пробую на grep "сайты" в следующем выводе:

➜ ls
autoreviewcomments.user.js  build.sh     build.xml  README.md  src
build.properties            build.sites  dist       SDK
➜ ls | grep sites
build.properties            build.sites  dist       SDK

или в некоторых случаях цвет будет в способе cd, таким образом, Вы не должны будете указывать "окраску":

cd $(ls | grep --no-color sites)
0
ответ дан 1 June 2014 в 17:08

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

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