A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
-bash: mv: command not found #Debian apt-get install coreutils #Ubuntu apt-get install coreutils #Arch Linux pacman -S coreutils #Kali Linux apt-get install coreutils #CentOS yum install coreutils #Fedora dnf install coreutils #Raspbian apt-get install coreutils #Docker docker run cmd.cat/mv mv
mv 命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source
表示源文件或目录,target
表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。
mv 命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有下面不同的结果:
mv [options] [-T] source destination mv [options] source [source2 ...] destination mv [options] -t destination source [source2 ...]
--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份; -b:当文件存在时,覆盖前,为其创建一个备份; -f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录; -i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。 --strip-trailing-slashes:删除源文件中的斜杠“/”; -S<后缀>:为备份文件指定后缀,而不使用默认的后缀; -n, --no-clobber 永远不要覆盖任何现有文件。 -t --target-directory=<目录>:指定源文件要移动到目标目录; -T, --no-target-directory 将目标视为普通文件,而不是目录。 -u, --update 如果文件较新,请勿覆盖文件。 仅当目标文件早于源文件或目标文件尚不存在时才会发生移动。当源文件比目标文件新或者目标文件不存在时,才执行移动操作。 -v, --verbose 提供详细输出。 打印移动的每个文件的名称。
注意:如果指定上述选项 -i,-f 或 -n 中的多个选项,则只有指定的最终选项生效。
源文件:源文件列表。 目标文件:如果“目标文件”是文件名则在移动文件的同时,将其改名为“目标文件”;如果“目标文件”是目录名则将源文件移动到“目标文件”下。
#将文件myfile.txt移动到myfiles目录中。 #如果myfiles是一个文件,它将被覆盖。 #如果文件被标记为只读,但您拥有该文件,则会在覆盖之前提示您。 mv myfile.txt myfiles #如果myfiles是文件或目录,并且myfiles2是目录,请将myfiles移动到myfiles2中。 #如果myfiles2不存在,则文件或目录myfiles将重命名为myfiles2。 mv myfiles myfiles2 #将文件myfile.txt移动到当前目录的父目录中。 mv myfile.txt ../ #将文件myfile1和myfile2移动到myfiles目录中。下面2个等效; mv -t myfiles myfile1 myfile2 mv myfile1 myfile2 myfiles #如果file2存在且是目录,则将文件移入其中。 如果file2不存在,则将文件重命名为file2。 如果file2存在且是文件,则不会发生任何事情。 mv -n file file2 #如果file2存在且是一个文件,它将被覆盖。 mv -f file file2 #如果file2存在且是文件,则会给出提示: mv -i file file2 mv: overwrite 'file2'? Entering "y", "yes", "Yes", or "Y" will result in the file being overwritten. Any other input will skip the file. #与 mv -i 相同。 f选项被忽略。 mv -fi file file2 #与 mv -f 相同。 覆盖没有提示。 i选项被忽略。 mv -fi file file2 #重命名文件 "My file.txt" 为 "My file 2.txt",这里空格被转义了。 mv My\ file.txt My\ file\ 2.txt #同上命令等效 mv "My file.txt" "My file 2.txt"
分析下面 mv 命令的执行结果:
mv "My file.txt" myfiles -------- 如果 myfiles 是一个目录, My file.txt 将被移动到 myfiles 目录; 如果 myfiles 是一个文件, My file.txt 将被重命名为 myfiles, 并且原来的文件 myfiles 将被覆盖; 如果 myfiles 不存在, My file.txt 将被重命名为 myfiles; mv My*.txt myfiles -------- 如果 myfiles 是一个目录: 所有以 .txt结尾的文件,将被移动到 myfiles 目录; 如果 myfiles 不存在或不是目录, mv 将报错。 my My\ file??.txt myfiles -------- 如果 myfiles 是目录: 在My file 和 .txt 之间,任何文件包含 0个、1个、2个字符的文件将被移动到 myfiles 目录; 如果 myfiles 不存在或不是目录, mv 将报错。
mv 备份:
#如果file2存在,它将被重命名为file2。 mv -b file file2 #如果file2存在,它将被重命名为file2.bak。 mv -b --suffix=.bak file file2 #如果file2存在,它将被重命名为file2。~1~。 如果file2 .~1~存在,则将其重命名为file2。~2~等 mv --backup=numbered; mv file file2 VERSION_CONTROL=numbered mv -b file file2