Мой терминал в данный момент находится в домашнем каталоге, и домашний каталог содержит каталог, в котором подстрока имеет значение «round». Есть ли способ напрямую перейти в этот каталог без ввода полного имени каталога? Как без выполнения:
cd dir_name
Или
cd identifier
Почему приведенная ниже команда открывает вспомогательное приглашение вместо изменения каталога
cd ls | grep identifier
Печально с ударом Вы не можете. Ближайшая вещь, которую можно сделать, если идентификатор в начале имени файла, нажмите Вкладку так автоматическое заполнение 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)