在命令行中,可以说我的pwd是这样的:
/home/whatever
还有一个我想重命名的深层目录中的文件。 通常我会这样做:
# mv /var/some/deep/folder/structure/fileA /var/some/deep/folder/structure/fileB
问题是,有没有命令行技巧来重命名文件/目录,而不必再input整个目录结构? 就像是:
# mv /var/some/deep/folder/structure/fileA fileB
该命令的问题是,它将fileA移动到您的pwd 。 显然,我想保持在同一个位置,只需重命名它。 所以,正如我所说,有没有什么技巧,而不必再次input整个目录结构呢? 这只是出于好奇和懒惰的一个问题。
取决于你的shell。 在zsh中你可以:
mv /var/some/deep/folder/structure/{fileA,fileB}
如果你使用bash,考虑迁移到zsh – 这是一个非常简单的过程,我相信你会喜欢zsh。 🙂
编辑 :
它似乎工作在bash,看Lunar_Lamp的评论。
…他们都在Bourne-Againshell,Kornshell和Zshell中工作。
DIR =的/ var /一些/深/文件夹/结构
mv“$ {dir}”/ fileA mv“$ {dir}”/ fileB
mv / var / some / deep / folder / structure / {fileA,fileB}
(cd / var / some / deep / folder / structure / && mv fileA fileB)
其他的打字减less技巧包括更多的特定于shell的技巧,例如函数和别名,以及shell-neutral技巧,例如使用terminal仿真器的复制和粘贴function 。 ☺
虽然可能有更高效的快捷方式,但这些将是我经常使用的两种方法:
aa=/var/some/deep/folder/structure/ mv "$aa"fileA "$aa"fileB
要么
cd /var/some/deep/folder/structure mv fileA fileB cd -
现在,显然他们不是你所追求的有效的解决scheme,但是他们都可以(比我的意见)更快,而不是每次都input完整的path。