Как перейти в каталог, в который я только что переместил этот файл?

10

Итак, давайте предположим, что я только что сделал:

mv ./myfile /to/some/other/place/

И теперь я решил, что хочу проследить за файлом и зайти в этот каталог.

В то время как я мог направиться к мышке, выделите текст, напечатайте «cd», затем щелкните правой кнопкой мыши, чтобы вставить - я бы предпочел более быстрый каталог на основе клавиатуры.

Итак, каков лучший способ сделать это?
(Вообще, а если иное, то Centos + Bash конкретно)

Питер Боутон
источник

Ответы:

12

Если вы введете «! $», Он выведет последний аргумент предыдущей строки. В какую папку вы переместили файл.

thepocketwade
источник
Лучшее, что я узнал за весь день.
Markdrayton
1
Cd $ _ у Рори - это Posix, поэтому он будет работать как с оболочкой ksh, bourne, так и с bash.
kmarsh
1
«cd $ _» не работает в csh или tcsh, но работает в zsh. csh и tcsh поддерживают! $, хотя. Только для записи.
thepocketwade
5

Пытаться

cd !$
Кристиан Лескуйер
источник
1
Спасибо - это работает, но thepocketwade дал более полный ответ, поэтому принял его.
Питер Боутон
4

Попробуйте «cd», а затем «[Alt] +». (может использоваться повторно). Все предыдущие команды будут прокручиваться последним параметром. Так это будет выглядеть так:

mv ./myfile /to/some/other/place/
cd <Alt>+.
katriel
источник
Спасибо, также полезно, так как иногда я могу не захотеть сразу предшествующую команду.
Питер Боутон
Вот еще один полезный трюк с bash: использование Ctrl + r позволит вам быстро найти историю, введя частичную команду. Может также использоваться для прокрутки назад к старым частям вашей истории
katriel
4

Esc- .(Escape, сопровождаемый Period) Дает вам последний аргумент предыдущей команды, это ярлык readline . Вы можете ввести его много раз, чтобы просмотреть последние аргументы предыдущих команд. Readline - это библиотека ввода командной строки, которая используется многими оболочками (такими как bash, тот же сопровождающий), клиентами irc и т. Д.

Вероятно, это мой любимый способ сочетания клавиш (после ctrl- aдля начала строки и ctrl- eдля конца строки), попробуйте ;-)

Обновление: О, катриэль выложил Alt- .это одно и то же, просто другой ключ ( Altвместо Esc)

Кайл Брандт
источник
2

Вы также можете использовать $_в качестве последнего аргумента последней командной строки

Рори
источник