Назад | Перейти на главную страницу

Создать копию файла в том же месте

Мне часто нужно создавать копии файлов в разных местах (и я хочу избежать чрезмерного набора текста). (Потом отредактирую)

В основном команды такие:

cp very/long/path/to/file/my-file_with-long.name very/long/path/to/file/my-file_with-long-another.name
vim very/long/path/to/file/my-file_with-long-another.name
cp even/longer/path/to/other/location/with_another-file_and-stupid.name even/longer/path/to/other/location/with_another-file_and-stupid-copy.name
vim even/longer/path/to/other/location/with_another-file_and-stupid-copy.name

Я действительно хочу избежать изменения рабочего каталога с помощью cd и вводя один и тот же путь дважды. В основном я могу добавить команду в bashrc лайк mydup, поэтому он создаст новый файл и вернет его имя, поэтому я могу использовать:

vim $(mydup very/long/path/to/file/my-file_with-long.name -another)
vim $(mydup even/longer/path/to/other/location/with_another-file_and-stupid.name -copy)

Но, может быть, я изобрету велосипед и есть способ сделать то же самое попроще?

cp /very/long/file/path{,.bak}

vim !$

или

cpvi() {
    name=$1
    cp "${name}" "${name}.bak"
    $EDITOR "${name}.bak"
}

cpvi /very/long/file/path

Вы можете скопировать файл на место, не меняя каталоги. Например.

cp very-long-file-name very-long-file-name.copy
vim very-long-file-name.copy

В этом случае bash-Completion и tab ключ твой друг. Я делаю это постоянно и никогда не пишу слишком много.