在
Linux中,我有时会重命名这样的文件:
mv dir1/dir2/dir3/file.txt dir1/dir2/dir3/file.txt.old
是否有一个命令可以让我做一个该命令的速记版本?我想的是:
mv dir1/dir2/dir3/file.txt file.txt.old
或者甚至可能是(只是附加到名称):
mv dir1/dir2/dir3/file.txt {}.old
我的目标不是要再次指定完整路径.
我知道我写的那些“例子”不起作用,但它只是我想要完成的一个想法.
我不想要进入该目录.
解决方法
对于单个文件尝试
mv dir1/dir2/dir3/file.{txt,txt.old}
在X {a,b}构造扩展为Xa Xb的地方,您可以使用预览
echo dir1/dir2/dir3/file.{txt,txt.old}
看它是否符合你的需要.
注意:
>对于多个文件
mv dir1/dir2/dir3/file{1,2,3}.{txt,txt.old}
不太可能扩展到你想要的. (这将扩展为file.txt file1.txt.old file2.txt的混合…)
> {txt,txt.old}可以根据评论缩短为{,.old}
>如果目录名称不明显,则可以使用通配符.
mv *1/*2/d*/*.{,old}
rename -n s/txt/old.txt/ dir1/dir2/dir3/file*.txt
drop -n有效重命名.