当前位置: 首页 > news >正文

Linux系统之mv命令的基本使用

Linux系统之mv命令的基本使用

  • 一、mv命令介绍
    • 1. mv命令简介
    • 2. mv命令的使用结果
  • 二、mv命令的使用帮助
    • 1. 在命令行的帮助信息
    • 2. mv常用选项
  • 三、mv命令的基本使用
    • 1. 创建源目录和目标目录
    • 2. 新建测试文件
    • 3. 将源目录文件复制到目标目录
    • 4. 将文件进行改名
    • 5. 将目录的所有文件转移到目标目录
    • 6. 移动多个文件到目标目标
    • 7. 移动目录
    • 8. 覆盖文件
  • 四、mv的日常使用
    • 1. 提示是否覆盖文件
    • 2. 覆盖文件时对源文件备份
    • 3. 强制覆盖文件
    • 4. 打印转移信息
    • 5. 源文件比目标文件新时才执行更新
  • 五、注意事项

在这里插入图片描述

一、mv命令介绍

1. mv命令简介

mv命令主要是在Linux系统中用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。

2. mv命令的使用结果

  • mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有不同的结果:

1.如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。
2.如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。
3.如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。
4.当目标文件是目录时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标目录中。所有移到该目录下的文件都将保留以前的文件名。

二、mv命令的使用帮助

1. 在命令行的帮助信息

在命令行的,mv --help显示mv的帮助信息。

[root@jeven ~]# mv --help
Usage: mv [OPTION]... [-T] SOURCE DESTor:  mv [OPTION]... SOURCE... DIRECTORYor:  mv [OPTION]... -t DIRECTORY SOURCE...
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.Mandatory arguments to long options are mandatory for short options too.--backup[=CONTROL]       make a backup of each existing destination file-b                           like --backup but does not accept an argument-f, --force                  do not prompt before overwriting-i, --interactive            prompt before overwrite-n, --no-clobber             do not overwrite an existing file
If you specify more than one of -i, -f, -n, only the final one takes effect.--strip-trailing-slashes  remove any trailing slashes from each SOURCEargument-S, --suffix=SUFFIX          override the usual backup suffix-t, --target-directory=DIRECTORY  move all SOURCE arguments into DIRECTORY-T, --no-target-directory    treat DEST as a normal file-u, --update                 move only when the SOURCE file is newerthan the destination file or when thedestination file is missing-v, --verbose                explain what is being done-Z, --context                set SELinux security context of destinationfile to default type--help     display this help and exit--version  output version information and exitThe backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.
The version control method may be selected via the --backup option or through
the VERSION_CONTROL environment variable.  Here are the values:none, off       never make backups (even if --backup is given)numbered, t     make numbered backupsexisting, nil   numbered if numbered backups exist, simple otherwisesimple, never   always make simple backupsGNU coreutils online help: <http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils 'mv invocation'

2. mv常用选项

mv命令的常用选项

--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
--strip-trailing-slashes:删除源文件中的斜杠“/”;
-S<后缀>:为备份文件指定后缀,而不使用默认的后缀;
--target-directory=<目录>:指定源文件要移动到目标目录;
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

三、mv命令的基本使用

1. 创建源目录和目标目录

创建一个源目录和目标目录

[root@jeven ~]# mkdir /source
[root@jeven ~]# mkdir /target

2. 新建测试文件

在源目录和目标目录分别新建测试文件。

[root@jeven ~]# touch /source/sou_file{01..03}.txt
[root@jeven ~]# ls /source/
sou_file01.txt  sou_file02.txt  sou_file03.txt
[root@jeven ~]# touch /target/tar_file{01..03}.txt
[root@jeven ~]# ls /target/
tar_file01.txt  tar_file02.txt  tar_file03.txt

3. 将源目录文件复制到目标目录

将/source/sou_file01.txt 复制到/target/目录下

[root@jeven ~]# mv /source/sou_file01.txt /target/
[root@jeven ~]# ls /target/
sou_file01.txt  tar_file01.txt  tar_file02.txt  tar_file03.txt

4. 将文件进行改名

在同一目录下将文件进行改名,例如在target/目录,将sou_file01.txt改名为aa_test.txt

[root@jeven ~]#  cd  /target/
[root@jeven target]# mv sou_file01.txt  aa_test.txt
[root@jeven target]# ls /target/
aa_test.txt  tar_file01.txt  tar_file02.txt  tar_file03.txt

5. 将目录的所有文件转移到目标目录

将/source/目录的所有文件,转移到目标目录 /target/

[root@jeven ~]# mv /source/*  /target/
[root@jeven ~]# ls /target/
aa_test.txt  sou_file02.txt  sou_file03.txt  tar_file01.txt  tar_file02.txt  tar_file03.txt

6. 移动多个文件到目标目标

将/test/目录下的file01和file02文件转移到目标目录/target

[root@jeven ~]# mv /test/file01 /test/file02 /target/
[root@jeven ~]# ls /target/
aa_test.txt  file01  file02  sou_file02.txt  sou_file03.txt  tar_file01.txt  tar_file02.txt  tar_file03.txt

7. 移动目录

将/test目录移动到/target目录

[root@jeven ~]# mv /test/ /target/
[root@jeven ~]# ls /target/
aa_test.txt  file01  file02  sou_file02.txt  sou_file03.txt  tar_file01.txt  tar_file02.txt  tar_file03.txt  test

8. 覆盖文件

在/source目录下,创建两个文件,并写入内容。

root@jeven ~]# cd /source/
[root@jeven source]# ls
[root@jeven source]# echo 11 > aa.txt
[root@jeven source]# echo 22 > bb.txt
[root@jeven source]# cat aa.txt 
11
[root@jeven source]# cat bb.txt 
22

当源文件aa.txt和目标文件bb.txt都存在时,源文件会变成目标文件bb.txt,并覆盖原来的bb.txt文件。

[root@jeven source]# mv aa.txt bb.txt 
mv: overwrite ‘bb.txt’? yes
[root@jeven source]# ls
bb.txt
[root@jeven source]# cat bb.txt 
11

四、mv的日常使用

1. 提示是否覆盖文件

在当覆盖文件时,提示是否覆盖文件,默认mv命令加了-I

[root@jeven source]# mv -i aa.txt bb.txt 
mv: overwrite ‘bb.txt’? yes
[root@jeven source]# ls
bb.txt
[root@jeven source]# cat bb.txt 
11
[root@jeven source]# alias |grep mv
alias mv='mv -i'

2. 覆盖文件时对源文件备份

使用mv -b,在覆盖文件时,对源文件进行备份。

[root@jeven source]# echo 11 > aa.txt
[root@jeven source]# echo 22 > bb.txt
[root@jeven source]# mv -b aa.txt bb.txt 
mv: overwrite ‘bb.txt’? yes
[root@jeven source]# ls
bb.txt  bb.txt~
[root@jeven source]# cat bb.txt
11
[root@jeven source]# cat bb.txt~
22

3. 强制覆盖文件

使用mv -f 强制覆盖文件。

mv -f aa.txt bb.txt 

4. 打印转移信息

使用mv -v打印移动信息

[root@jeven source]# mv -v /source/bb.txt /target/
‘/source/bb.txt’ -> ‘/target/bb.txt’

5. 源文件比目标文件新时才执行更新

当源文件是最新更新时,才可以覆盖目标文件。

  • 目标文件比源文件更新时,不执行覆盖操作。
[root@jeven source]# echo 11 > aa.txt
[root@jeven source]#  echo 22 > bb.txt
[root@jeven source]# mv -uv aa.txt bb.txt 
[root@jeven source]# ls
aa.txt  bb.txt
  • 源文件比目标文件更新时,执行覆盖操作。
[root@jeven source]# echo ee > aa.txt 
[root@jeven source]# mv -uv aa.txt bb.txt 
mv: overwrite ‘bb.txt’? yes
‘aa.txt’ -> ‘bb.txt’
[root@jeven source]# ls
bb.txt
[root@jeven source]# cat bb.txt 
ee

五、注意事项

在Linux中使用mv命令时,有几个注意事项可以帮助你更安全、有效地操作文件和目录:

  1. 权限问题:确保你有足够的权限去移动或重命名文件。如果没有,mv命令会失败,除非使用了sudo(对于需要提升权限的操作)。

  2. 覆盖风险:默认情况下,如果你尝试移动一个文件到一个已存在的同名文件的位置,mv会直接覆盖目标文件,不会询问。为了避免意外覆盖,可以使用-i(interactive)选项,这样在覆盖前会提示确认。

  3. 备份原文件:使用-b选项可以在覆盖文件前自动创建一个备份,这对于保护重要数据很有帮助。

  4. 移动与重命名的区别:当第二个参数是文件名时,视为重命名操作;当是目录名时,则是移动操作。确保正确指定目标以达到预期效果。

  5. 跨文件系统移动:跨文件系统移动文件时,mv实际上是先复制再删除原文件。这意味着如果操作过程中出现错误(如空间不足),可能会丢失原文件。

  6. 目录操作:移动目录时,记得在目标路径后加斜杠(/),这可以避免在目标目录不存在时意外地将源目录作为目标目录的一个子目录移动进去。

  7. 批量操作:可以同时移动多个文件或目录,只需在源文件列表中列出它们,但目标必须是一个已存在的目录。

  8. 符号链接:移动符号链接会移动链接本身而不是链接指向的文件。若要移动实际文件,需要使用-L选项来跟踪并移动链接指向的目标。

相关文章:

Linux系统之mv命令的基本使用

Linux系统之mv命令的基本使用 一、mv命令介绍1. mv命令简介2. mv命令的使用结果 二、mv命令的使用帮助1. 在命令行的帮助信息2. mv常用选项 三、mv命令的基本使用1. 创建源目录和目标目录2. 新建测试文件3. 将源目录文件复制到目标目录4. 将文件进行改名5. 将目录的所有文件转移…...

vscode 好用的插件

转中文插件 Chinese 官网&#xff1a;Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code - Visual Studio Marketplace vue文件模板快速生成 Vue VSCode Snippets 官网&#xff1a;Vue VSCode 代码段 - Visual Studio Marketplace...

什么是蓝牙定位车载GPS终端

蓝牙定位车载GPS终端是一种集成了蓝牙技术和GPS定位功能的车载设备。这种终端不仅可以通过GPS卫星信号进行室外定位&#xff0c;还能利用蓝牙技术在室内环境中进行定位&#xff0c;实现室内外一体化的定位服务。以下是一些关于蓝牙定位车载GPS终端的关键特点和功能&#xff1a;…...

指纹采集技术

目录 1.概述 1.1 捺印油墨采集 1.2 现场指纹提取 1.3 在线指纹采集 2. 指纹采集器的关键技术指标 2.1 采集面积 2.2 分辨率 2.3 图像质量 2.4 耐用性 1.概述 最早的指纹采集技术是油墨法&#xff0c;至少已经有上百年的历史。1990年代出现了活体指纹采集器&#xff0c…...

/etc/fstab、/etc/mtab 文件详解及永久挂载(文件系统、ISO镜像、文件网络共享)

/etc/mtab /etc/mtab 是当前的分区挂载情况&#xff0c;记录的是当前系统已挂载的分区。每次挂载/卸载分区时会更新 /etc/mtab 文件中的信息&#xff08;执行 mount 命令会改变 /etc/mtab 的信息&#xff09;。 文件样例 /etc/fstab 系统开机时会主动读取 /etc/fstab 这个文…...

【Linux】进程(5):命令行参数

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解Linux进程&#xff08;5&#xff09;&#xff1a;命令行参数&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 &#xff08;A&#xff09;为什么要有命令…...

vue2+antv/x6实现er图

效果图 安装依赖 npm install antv/x6 --save 我目前的项目安装的版本是antv/x6 2.18.1 人狠话不多&#xff0c;直接上代码 <template><div class"er-graph-container"><!-- 画布容器 --><div ref"graphContainerRef" id"gr…...

如何在XDMA中查看LTSSM状态机

简介 经常会遇到PCIe不能识别的问题&#xff0c;到底怎么去定位。本文以XDMA 为例&#xff0c;一方面复习下LTSSM状态机&#xff0c;一方面描述下如何通过FPGA的XDMA查看这个状态机 技术名词 LTSSM是一种常用于PCI Express&#xff08;PCIe&#xff09;接口的状态机&#xf…...

编译和运行qemu-uboot-arm64单板的Armbian系统

这篇文章ARM虚拟机安装OMV-CSDN博客遗留一个启动qemu-uboot-arm64单板Armbian镜像的问题&#xff0c;使用官方下载的镜像&#xff0c;会报错&#xff1a; fatal: no kernel available .... Failed to load /vmlinuz ...... qemu-system-aarch64 -smp 8 -m 8G -machine virt …...

Python版《消消乐》,附源码

曾经风靡一时的消消乐&#xff0c;至今坐在地铁上都可以看到很多人依然在玩&#xff0c;想当年我也是大军中的一员&#xff0c;那家伙&#xff0c;吃饭都在玩&#xff0c;进入到高级的那种胜利感还是很爽的&#xff0c;连续消&#xff0c;无限消&#xff0c;哈哈&#xff0c;现…...

Kubernetes ingress

目录 一.ingress 1.ingress简介 2.实现外部应用能访问内部集群服务的方法 &#xff08;1&#xff09;NodePort&#xff1a; &#xff08;2&#xff09;LoadBalancer&#xff1a; &#xff08;3&#xff09;externalIPs&#xff1a; &#xff08;4&#xff09;ingress&am…...

【JavaScript】ECMAS6(ES6)新特性概览(二):解构赋值、扩展与收集、class类全面解析

🔥 个人主页:空白诗 🔥 热门专栏:【JavaScript】 文章目录 🌿 引言五、 Destructuring Assignment - 解构赋值,数据提取的艺术 🎨📌 数组解构📌 对象解构&...

Linux入门学习指南

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…...

纯血鸿蒙实战开发—如何添加顶部tab页面

1.Tabs组件 Tabs组件的页面组成包含两个部分&#xff0c;分别是TabContent和TabBar。TabContent是内容页&#xff0c;TabBar是导航页签栏. 根据不同的导航类型&#xff0c;布局会有区别&#xff0c;可以分为底部导航、顶部导航、侧边导航&#xff0c;其导航栏分别位于底部、顶…...

数仓建模—指标拆解和选取

数仓建模—指标拆解和选取 第一节指标体系初识介绍了什么是指标体系 第二节指标体系分类分级和评价管理介绍了指标体系管理相关的,也就是指标体系的分级分类 这一节我们看一下指标体系的拆解和指标选取,这里我们先说指标选取,其实在整个企业的数字化建设过程中我们其实最…...

HTML静态网页成品作业(HTML+CSS)——VIVO介绍网页(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…...

MySQL(四) - SQL优化

一、SQL执行流程 MySQL是客户端-服务器的模式。一条SQL的执行流程如下&#xff1a; 在执行过程中&#xff0c;主要有三类角色&#xff1a;客户端、服务器、存储引擎。 大致可以分为三层&#xff1a; 第一层&#xff1a;客户端连接到服务器&#xff0c;构造SQL并发送给服务器…...

用 DataGridView 控件显示数据

使用DataGridView&#xff0c;可以很方便显示数据。 1.为解决方案添加数据集XSD&#xff0c;用作为项目数据源。 2.拖DataGridView控件到WinForms上。 3.在DataGridView控件的任务处&#xff0c;选择数据源。 4.选好数据源后&#xff0c;VS自动添加DataSet、BindingSourse和T…...

VisualSVN Server/TortoiseSVN更改端口号

文章目录 概述VisualSVN Server端更改端口号TortoiseSVN客户端更改远程仓库地址 概述 Subversion&#xff08;SVN&#xff09;是常用的版本管理系统之一。部署在服务器上的SVN Server端通常会在端口号80&#xff0c;或者端口号443上提供服务。其中80是HTTP访问方式的默认端口。…...

如何解决研发数据传输层面安全可控、可追溯的共性需求?

研发数据在企业内部跨网文件交换&#xff0c;是相对较为普遍而频繁的文件流转需求&#xff0c;基于国家法律法规要求及自身安全管理需要&#xff0c;许多企业进行内部网络隔离。不同企业隔离方案各不相同&#xff0c;比如银行内部将网络隔离为生产网、办公网、DMZ区&#xff0c…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...