在同一位置创建文件副本

在同一位置创建文件副本

我经常需要在各个位置创建文件的副本(并希望避免过多的输入)。(然后我会编辑它们)

基本上命令如下:

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

我真的想避免使用 更改 workdircd并输入两次相同的路径。基本上我可以将命令添加到bashrclike中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)

但也许我发明了自行车,并且有更简单的方法可以做同样的事情?

答案1

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

vim !$

或者

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

cpvi /very/long/file/path

答案2

您可以就地复制文件,而无需更改目录。例如

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

在这种情况下,bash-completion 和tabkey 是你的好朋友。我一直都在这么做,而且我从来不会写太多。

相关内容