我经常需要在各个位置创建文件的副本(并希望避免过多的输入)。(然后我会编辑它们)
基本上命令如下:
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
并输入两次相同的路径。基本上我可以将命令添加到bashrc
like中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 和tab
key 是你的好朋友。我一直都在这么做,而且我从来不会写太多。