mv 命令 #
mv
命令(move)用于移动或重命名文件和目录。它可以将文件从一个位置移动到另一个位置,也可以在不改变位置的情况下更改文件名。
语法 #
mv [选项] 源文件... 目标
常用选项 #
选项 | 描述 |
---|---|
-b, --backup |
为已存在的目标文件创建备份 |
-f, --force |
不提示确认,强制覆盖已存在的文件 |
-i, --interactive |
覆盖前提示确认 |
-n, --no-clobber |
不覆盖已存在的文件 |
-u, --update |
仅当源文件比目标文件新或目标文件不存在时才移动 |
-v, --verbose |
显示详细操作信息 |
-t, --target-directory=目录 |
将所有源文件移动到指定目录 |
常见用法 #
1. 重命名文件 #
mv oldname.txt newname.txt
2. 移动文件到另一个目录 #
mv file.txt /path/to/directory/
3. 移动多个文件到目录 #
mv file1.txt file2.txt file3.txt /path/to/directory/
4. 移动目录 #
mv source_directory/ destination_directory/
5. 交互式移动(覆盖前提示) #
mv -i file.txt destination.txt
输出示例(如果目标文件已存在):
mv: overwrite 'destination.txt'? y
6. 仅当源文件较新时才移动 #
mv -u source.txt destination.txt
7. 创建备份再移动 #
mv -b file.txt destination.txt
这将在覆盖destination.txt
前创建一个名为destination.txt~
的备份。
8. 显示移动过程 #
mv -v file.txt destination.txt
输出示例:
'file.txt' -> 'destination.txt'
9. 不覆盖现有文件 #
mv -n source.txt destination.txt
10. 使用通配符移动多个文件 #
mv *.txt /path/to/directory/
11. 指定目标目录 #
mv -t /path/to/directory/ file1.txt file2.txt file3.txt
这等同于:
mv file1.txt file2.txt file3.txt /path/to/directory/
12. 移动隐藏文件 #
mv .hidden_file /path/to/directory/
提示 #
- 使用
-i
选项可以防止意外覆盖重要文件 - 在许多系统上,
mv
命令默认不会提示确认覆盖,所以在移动重要文件时要小心 - 移动文件到同一文件系统内的另一个位置通常很快,因为只需更改文件的路径信息
- 移动文件到不同的文件系统需要复制文件内容并删除原文件,可能需要更长时间
- 使用
-v
选项可以查看移动操作的详细信息,这在批量移动文件时很有用 - 如果目标是一个目录,源文件将被移动到该目录中;如果目标不是目录,则源文件将被重命名
- 移动目录时,如果目标目录已存在,源目录将被移动到目标目录内;如果目标目录不存在,源目录将被重命名
- 在脚本中,通常使用
-f
选项忽略错误和提示 - 使用
-u
选项可以实现简单的增量更新