Linux
具有長名稱的 Linux mv 文件
在 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
rename -n s/txt/old.txt/ dir1/dir2/dir3/file*.txt
刪除
-n
以進行有效重命名。