Linux 命令(文件和目录管理 - mv)

简述

mv 命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。

  • 简述
  • 命令介绍
  • 命令选项
  • 使用范例

命令介绍

  • 命令名称
    mv
  • 命令全称
    move
  • 基本语法
    mv [选项]… [-T] 源文件 目标文件
    或:mv [选项]… 源文件… 目录
    或:mv [选项]… -t 目录 源文件…
  • 功能描述
    将源文件重命名为目标文件,或将源文件移动至指定目录。

命令选项

选项 说明
--backup[=CONTROL] 为每个已存在的目标文件创建备份
-b 类似 --backup,但不接受参数
-f, --force 覆盖前不询问
-i, --interactive 覆盖前询问
-n, --no-clobber 不覆盖已存在文件。如果指定了 -i、-f、-n 中的多个,仅最后一个生效。
--strip-trailing-slashes 去掉每个源文件参数尾部的斜线
-S, --suffix=SUFFIX 替换常用的备份文件后缀
-t, --target-directory=DIRECTORY 指定源文件要移动到目标目录
-T, --no-target-directory 将目标文件视作普通文件处理
-u, --update 当目标文件不存在,或者源文件比目标文件新时,才执行移动操作。
-v, --verbose 详细显示进行的步骤
-Z, --context 显示文件除组信息外的详细信息
--help 在标准输出上显示帮助信息并退出
--version 在标准输出上显示版本信息并退出

使用范例

1.移动文件

注意:文件的源地址和目标地址必须不同。

[wang@localhost linux]$ ls
hello.sh  linux-program.pdf
# 将 hello.sh 从当前目录移动至 /home/wang/script/
[wang@localhost linux]$ mv hello.sh /home/wang/script/
[wang@localhost linux]$ ls
linux-program.pdf
[wang@localhost linux]$ ls /home/wang/script/
hello.sh

正如所见,当移动 hello.sh 文件时,先前目录的文件就被删除了。

2.移动多个文件

如果想一次移动多个文件,可以将他们放在一行并用空格分开。

[wang@localhost c]$ mv hello.c qt5_cadaques.pdf /home/wang/script/
[wang@localhost c]$ ls /home/wang/script/
hello.c  hello.sh  qt5_cadaques.pdf

如果文件有规律可循的话,那么可以使用通配符。比如,为了移除所有以 .sh 为扩展名的文件,可以用下面的命令:

[wang@localhost c]$ mv *.sh /home/wang/script/

3.移动目录

[wang@localhost doc]$ tree /home/wang/script/
/home/wang/script/
├── hello.c
├── hello.sh
└── qt5_cadaques.pdf

0 directories, 3 files
[wang@localhost doc]$ tree linux/
linux/
└── linux-program.pdf

0 directories, 1 file
[wang@localhost doc]$ mv linux/ /home/wang/script/
[wang@localhost doc]$ tree /home/wang/script/
/home/wang/script/
├── hello.c
├── hello.sh
├── linux
│   └── linux-program.pdf
└── qt5_cadaques.pdf

1 directory, 4 files

4.重命名文件或目录

也可以用 mv 命令来重命名文件或目录,不过目标位置和源位置必须相同,文件名必须不同。

[wang@localhost c]$ ls
QmlBook-In-Chinese.pdf  qwt-6.1.1.pdf
[wang@localhost c]$ mv qwt-6.1.1.pdf qwt.pdf
[wang@localhost c]$ ls
QmlBook-In-Chinese.pdf  qwt.pdf

5.打印详细信息

当移动或重命名一大堆文件或目录时,可能会想在不去目标位置去查看的情况下知道自己的命令是否成功地执行了,这就要用到 -v 选项了。

[wang@localhost c++]$ mv -v qwt.pdf /home/wang/script/
"qwt.pdf" -> "/home/wang/script/qwt.pdf"

6.使用交互模式

当移动文件时,目标位置恰好有同名文件,这时 mv 命令会覆盖掉原来的文件。如果想产生一个关于覆盖文件的提示,可以使用 -i 选项。

[wang@localhost doc]$ mv -i hello.sh /home/wang/script/
mv:是否覆盖"/home/wang/script/hello.sh"? y
[wang@localhost doc]$ 

该提示会告诉我们目标位置处是否有同名文件。如果按 y 键,那么该文件将会被删除,否则不会。

7.使用更新选项

选项 -u ,当目标文件不存在,或者源文件比目标文件新时,才执行移动操作。

[wang@localhost doc]$ ls -l hello.sh
-rw-rw-r--. 1 wang wang 0 10月 19 13:08 hello.sh
[wang@localhost doc]$ ls -l /home/wang/script/hello.sh
-rw-rw-r--. 1 wang wang 0 10月 19 13:09 /home/wang/script/hello.sh
[wang@localhost doc]$ mv -uv hello.sh /home/wang/script/
[wang@localhost doc]$ 

可以看到文件没有被移动,是因为 hello.sh 最近的修改时间戳比 /home/wang/script/hello.sh 的旧。

8.不覆盖任何已存在的文件

选项 -i 会询问是否要覆盖文件,选项 -n 则不会允许覆盖任何已存在的文件。

[wang@localhost doc]$ mv -vn hello.sh /home/wang/script/
[wang@localhost doc]$ ls *.sh
hello.sh

加上 -v 选项,可以看到文件没有被移动到了目标目录下,使用 ls 再次验证,原文件仍然存在。

9.复制时创建备份

默认情况下,移动文件将会覆盖已存在的目标文件。但是如果移动错了文件,而目标文件已经被新的文件覆盖了,这时应该怎么办才好呢?可以用 -b 选项,该选项会在新文件覆盖旧文件时将旧文件做备份。

[wang@localhost doc]$ mv -bv hello.sh /home/wang/script/
"hello.sh" -> "/home/wang/script/hello.sh" (备份:"/home/wang/script/hello.sh~")
[wang@localhost doc]$ ls -l /home/wang/script/hello.sh*
-rw-rw-r--. 1 wang wang 0 10月 19 12:52 /home/wang/script/hello.sh
-rw-rw-r--. 1 wang wang 0 10月 19 12:45 /home/wang/script/hello.sh~

目标目录下出现了名为 hello.sh 和 hello.sh~ 的文件,波浪符号(~)意味着这些文件是备份文件。从属性中可以看到,备份文件比 hello.sh 要旧。

10.无条件覆盖已经存在的文件

当希望无论如何都覆盖已经存在的文件或目录时,可以使用 -f 选项。使用此参数时,必须知道你在做什么。

[wang@localhost doc]$ mv -fv hello.sh /home/wang/script/
"hello.sh" -> "/home/wang/script/hello.sh"
时间: 2024-10-31 10:18:48

Linux 命令(文件和目录管理 - mv)的相关文章

RHCSA 系列(二): 如何进行文件和目录管理

在本篇中,我们将回顾一些系统管理员日常任务需要的技能. RHCSA: 运行文件以及进行文件夹管理 - 第二部分 创建.删除.复制和移动文件及目录 文件和目录管理是每一个系统管理员都应该掌握的必备技能.它包括了从头开始的创建.删除文本文件(每个程序的核心配置)以及目录(你用来组织文件和其它目录),以及识别已有文件的类型. touch 命令 不仅仅能用来创建空文件,还能用来更新已有文件的访问时间和修改时间. touch 命令示例 你可以使用 file [filename]来判断一个文件的类型 (在你

SQL Server on Linux的文件和目录结构

问题引入 "鸟儿啊,我记得你写过一篇<SQLServer On Linux Package List on CentOS>的文章,从这篇文章,我们很清楚的知道了SQL Server on Linux包含有哪些必要的包.那么,我们怎么知道SQL Server on Linux到底包含哪些重要的文件和目录结构呢?他们的作用是什么?". "的确,当我们在排错或者需要改变MSSQL Server on Linux配置的时候,我们需要对SQL Server的各个工作目录和文

详解Java的文件与目录管理以及输入输出相关操作_java

Java中文件与目录管理 目录是管理文件的特殊机制,同类文件保存在同一个目录下不仅可以简化文件管理,而且还可以提高工作效率.Java 语言在 java.io 包中定义了一个 File 类专门用来管理磁盘文件和目录. 每个 File 类对象表示一个磁盘文件或目录,其对象属性中包含了文件或目录的相关信息.通过调用 File 类提供的各种方法,能够创建.删除.重名名文件.判断文件的读写权限以及是否存在,设置和查询文件的最近修改时间等.不同操作系统具有不同的文件系统组织方式,通过使用 File 类对象,

Linux中文件权限目录权限的意义及权限对文件目录的意义_linux shell

linux中目录与文件权限的意义 一.文件权限的意义 r:可以读这个文件的具体内容: w:可以编辑这个文件的内容,包括增加删除文件的具体内容: x:文件就具有了可执行的权限-------注意:这里和window不一样,在win中,文件的可执行权限是通过扩展名表现出来的,如exe.bat等,但是在linux中文件的可执行权限是通过这个x决定的,与文件名没有什么关系. 二.目录权限的意义 r:可以查看此目录下的完整文件列表信息. w:可以对此目录下的所有的文件及目录进行相关的更改,也就是可以更改这个

linux下文件和目录的颜色所代表含义是什么?

linux下文件和目录的颜色所代表含义是什么? 蓝色表示目录:绿色表示可执行文件:红色表示压缩文件:浅蓝色表示链接文件:灰色表示其它文件:红色闪烁表示链接的文件有问题了:黄色是设备文件,包括block, char, fifo.用dircolors -p看到缺省的颜色设置,包括各种颜色和"粗体",下划线,闪烁等定义 [root@localhost ~]# dircolors -p #&http://www.aliyun.com/zixun/aggregation/37954.ht

Linux 命令(文件和目录管理 - cp)

简述 cp 命令用来复制文件或目录.当复制多个文件时,目标文件参数必须为已经存在的目录.cp 命令默认不能复制目录,复制目录必须使用 -R 选项. 简述 命令介绍 命令选项 使用范例 命令介绍 命令名称 cp 命令全称 copy 基本语法 cp [选项]- [-T] 源文件 目标文件 或:cp [选项]- 源文件- 目录 或:cp [选项]- -t 目录 源文件- 功能描述 将源文件复制至目标文件,或将多个源文件复制至目标目录. 命令选项 选项 说明 -a, --archive 等于-dR --

Linux 命令(文件和目录管理 - pwd)

简述 目录是 Linux 的基本组成部分,目录管理包括目录的复制.删除.修改等操操作. 在 Linux 层次结构中,想要知道当前所处的目录,可以用 pwd 命令,该命令输出当前工作目录的完整名称.环境变量 OLDPWD 表示前一次的工作目录,环境变量 PWD 表示当前的工作目录. 简述 命令介绍 命令选项 使用范例 命令介绍 命令名称 pwd 命令全称 Print Working Directory 基本语法 pwd [选项]- 功能描述 打印当前工作目录的完整文件名 命令选项 pwd 命令比较

Linux 命令(文件和目录管理 - zip/unzip)

简述 zip/unzip 是 Linux 中广泛使用的压缩/解压缩程序zip 命令用来将文件压缩为常用的 zip 格式扩展名为 .zipunzip 命令则用来解压缩 zip 文件. 简述 zip 命令介绍 命令选项 使用范例 unzip 命令介绍 命令选项 使用范例 zip 命令介绍 命令名称 zip 基本语法 zip [-aABcdDeEfFghjklLmoqrRSTuvVwXyz!@$] [--longoption ...] [-b path] [-n suffixes] [-t date]

Linux 命令(文件和目录管理 - gzip/gunzip)

简述 和 zip 命令类似,gzip 用于文件的压缩,gzip 压缩后的文件扩展名位 .gz,gzip 默认压缩后会删除原文件.gunzip 用于解压经过 gzip 压缩过的文件. 简述 gzip 命令介绍 命令选项 使用范例 gunzip 命令介绍 命令选项 使用范例 gzip 命令介绍 命令名称 gzip 基本语法 gzip [OPTION]- [FILE]- 功能描述 压缩文件.压缩后的文件扩展名位 .gz,默认压缩后会删除原文件. 命令选项 选项 说明 -a --ascii 使用 ASC