Как перевести каталог в вывод grep

314
amallard

Я сейчас работаю в PowerShell и хочу узнать, как cdвойти в каталог, не вводя всю длину имени каталога.

Допустим, у меня действительно длинное имя каталога abcdefghijklmnop, и мне лень набирать текст, cd abcdefghijklmnopкогда я хочу перейти в эту папку. Как я мог сократить это? Я могу перечислить один каталог с помощью grep, ls | grep abcпоэтому я думал об использовании той же логики для применения cd, по существу, изменяя каталог в выходных данных grepкоманды, предполагая, что есть только 1 выходной.

cd | grep abc

Очевидно, что это не работает, но есть ли способ сделать это, или, может быть, лучший способ добиться этого без grepтого, что я знаю?

0
Я нашел что-то еще и удалил свой комментарий. DrZoo 6 лет назад 0
Я не совсем знаком с PowerShell, но попробуйте это: cd $ (ls | grep STRING). Это последнее предположение у меня есть. В противном случае я бы использовал завершение табуляции. Честно говоря, я считаю, что это проще, чем вводить эту команду. Я не совсем уверен, будет ли это работать. Другой вопрос: если вы работаете в Windows 10, задумывались ли вы об использовании встроенной функции Bash, которую они теперь имеют? DrZoo 6 лет назад 0
Это тоже не работает. Я не могу установить какие-либо плагины на эту машину, поэтому я ищу нестандартное решение amallard 6 лет назад 0
Сейчас меня интересует только решение PowerShell. Я просто добавил туда этот комментарий, потому что я часто работал в Linux и хотел знать, как сделать что-то подобное, поэтому * если * было бы универсальное решение, тогда это было бы хорошо. Но ради того, что я пытаюсь сделать прямо сейчас, просто готовое решение PowerShell amallard 6 лет назад 0

1 ответ на вопрос

1
LotPings

Вы не сказали, какую версию PowerShell вы используете ($ PSVersionTable). В последних версиях было улучшено заполнение вкладки, но оно работает во всех версиях, хотя и в зависимости от хоста (Windows / MacOS / Linux).

Это должно сделать

gci abc*|sl 
  • gciпсевдоним powershell для Get-ChildItemaka dir / ls
  • (В Linux / MacOS lsвернется к lsверсии системы .)
  • slэто Set-Locationпохоже наcd
Добавление для будущих пользователей: если вы хотите искать `bcd` (на моем примере), используйте:` gci * bcd * | sl` amallard 6 лет назад 0