Сменить каталог (cd) в unix на основании предыдущего действия

Некоторое время назад я видел сообщение в блоге об уловке, позволяющей сэкономить время в Unix, которую я не смог вспомнить, а на странице руководства ничего нет.

По сути это был способ перейти в каталог, в который вы только что скопировали или переместили что-то. Пример:

$pwd
/home/stedy
$mv temp /projects/trunk
$cd something
$pwd
/projects/trunk

Кто-нибудь когда-нибудь видел это раньше? Что я забыл после команды cd?

3 ответа

Решение

Один из вариантов - использовать команды истории:

$pwd
/home/stedy
$mv temp /projects/trunk
$cd !:2
$pwd
/projects/trunk

!:2 принимает второй аргумент предыдущей команды. Вы можете варьировать удовольствия с помощью модификаторов, ваш лучший друг man bash или же info bash и искать расширение истории (и модификаторы).

Вы можете нажать Alt-. чтобы получить последний аргумент предыдущей команды в Bash, ksh и zsh. Клавиша на самом деле обозначается как Мета-. что обычно означает нажатие клавиши Esc ., но комбинация Alt общедоступна. Обратите внимание, что подчеркивание будет работать вместо точки. Смотрите раздел Readline man bash для дополнительной информации. readline функция называется yank-last-arg,

В большинстве оболочек последний параметр, который вы указали в предыдущей команде, находится в $_

mkdir /some/dir
cd $_
# now in /some/dir
Другие вопросы по тегам