使用 mv 重命名文件无需两次键入文件名称
使用过 Bash 的童鞋都知道 mv
是一个可以用于文件改名的命令,而且使用这个命令修改文件名时我们需要输入两次文件名(旧名字和新名字)。
如果有一种情况是只需要你改动文件名中的一个字母,而文件名又特别长,这就很烦人。这里有一个 Bash 技巧,可以让你输入最小化。
例如,我要把 A 文件重命名为 B:
A. LYM-NC-1803_19-3-24-2.read1_Clean.uniq.sortByName.bam B. LYM-NC-1803_19-3-24-2.read2_Clean.uniq.sortByName.bam
mv LYM-NC-1803_19-3-24-2.read{1,2}_Clean.uniq.sortByName.bam
我们可以使用 “空” 来添加或删除名称(例如将 C 文件重命名为 D):
C. C2C12-exoCTRL.sortByName.bam D. C2C12-exoCTRL.sortByName.uniq.bam
mv C2C12-exoCTRL.sortByName{,.uniq}.bam
最后,安利一个使用 mv
命令重命名 linux bash 中的文件,而无需两次输入全名的快捷方式。
- 首先,把下面的代码粘贴到你的
~/.bashrc
文件最后,:wq
保存。
# Put this function to your .bashrc file.
# Usage: mv oldfilename
# If you call mv without the second parameter it will prompt you to edit the filename on command line.
# Original mv is called when it's called with more than one argument.
# It's useful when you want to change just a few letters in a long name.
#
# Also see:
# - imv from renameutils
# - Ctrl-W Ctrl-Y Ctrl-Y (cut last word, paste, paste)
function mv() {
if [ "$#" -ne 1 ] || [ ! -e "$1" ]; then
command mv "$@"
return
fi
read -ei "$1" newfilename
command mv -v -- "$1" "$newfilename"
}