2

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

mv Keasbey\ Ночи / Медиа / iPod / Музыка / Catch\ 22

cd / media / ipod / музыка / Catch\ 22

Больно набирать эту вторую часть все время. Есть ли простой способ сделать это автоматически в bash? я знаю это

cd-

перенесет меня в мой последний каталог, но это не совсем то, что я ищу. В моем примере я еще не был в /media /ipod /Music /Catch\ 22.

4 ответа4

3

Если вы удерживаете клавишу Alt и нажимаете «.», Оболочка автоматически наберет последний аргумент последней введенной вами команды. В вашей ситуации для 2-й команды введите "cd", нажмите alt., А остальное должно произойти само по себе.

3

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

computer:~ zac$ mkdir My\ Subdir
computer:~ zac$ cd !$
cd My\ Subdir
computer:~/My Subdir zac$

См. Справочную страницу для bash в разделе РАСШИРЕНИЕ ИСТОРИИ, Обозначения слов.

Также смотрите !* , который распространяется на все, кроме первого слова.

2

Вы также можете сделать функцию (поместите это в ваш ~/.bashrc):

function mvcd ()
{
 mv "$1" "$2"
 cd "$2"
}

вы используете его с теми же аргументами, что и mv, за исключением того, что вы будете в этом каталоге после выполнения команды.

пример:

[john@awesome ~]# touch file
[john@awesome ~]# mkdir some_folder
[john@awesome ~]# mvcd file some_folder/
[john@awesome some_folder]# ls
file
[john@awesome some_folder]# pwd
/home/john/some_folder
2

Чтобы получить предпоследний аргумент:

Alt - - (alt-minus), а затем Ctrl - Alt - y

Это «цифра-аргумент (отрицательный)», за которым следует «yank-nth-arg». Смотрите man readline для получения дополнительной информации.

Вы можете ввести цифры после alt-минус, чтобы получить предыдущие аргументы.

Чтобы получить подсчет аргументов с самого начала:

Alt - 0 это команда

Alt - 1 - первый аргумент

и т.д., а затем Ctrl - Alt - y

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .