我在some/long/path/to/file/myfiel.txt.
我想将其重命名为some/long/path/to/file/myfile.txt.
目前我是通过 来完成的mv some/long/path/to/file/myfiel.txt some/long/path/to/file/myfile.txt,但是两次输入路径并不是非常有效(即使使用制表符完成)。
我怎样才能更快地做到这一点?(我想我可以编写一个函数来仅更改文件名段,但这是 B 计划)。
Tam*_*man 11
要在单个命令中执行此操作,您只需执行以下操作:
mv some/long/path/to/file/{myfiel.txt,myfile.txt}
Run Code Online (Sandbox Code Playgroud)
这是完整文件名的示例,鉴于这是一个错字,您可以执行以下操作:
mv some/long/path/to/file/myfi{el,le}.txt
Run Code Online (Sandbox Code Playgroud)
两者都将扩展为完整命令,这些称为大括号扩展。它们由 zsh 支持。
这里有几个选项:
切换到目录:
cd /home/long/path
mv file1 file2
cd -
Run Code Online (Sandbox Code Playgroud)
使用目录堆栈更改目录:
pushd /some/long/path
mv file1 file2
popd
Run Code Online (Sandbox Code Playgroud)
使用子shell切换到目录:
(
cd /some/long/path
mv file1 file2
) # no need to change back
Run Code Online (Sandbox Code Playgroud)
使用大括号扩展:
mv /some/long/path/{file1,file2}
Run Code Online (Sandbox Code Playgroud)
使用变量:
D=/some/long/path
mv "$D/file1" "$D/file2"
Run Code Online (Sandbox Code Playgroud)