Linux文件管理命令(3)-mv改动文件

文章目录

前言

一、mv命令介绍

二、命令语法及参数

三、参考实例

总结


前言

在linux文件管理当中,有这样一个命令即可以做到移动文件到其他目录,也可以用来重命名文件的名称,它就是mv命令;在运维中是一个高频使用的命令,熟悉的运用对工作中也起到不少的帮助。

一、mv命令介绍

mv命令来自于英文单词move的缩写,其功能与英文含义相同,用于对文件进行剪切和重命名。若在同一个目录下对文件进行剪切的操作,这既是重命名的操作。

二、命令语法及参数

1)用help进行查看帮助命令

语法: mv 【选项】源文件 目标文件

[root@localhost ~]# mv --help
用法:mv [选项]... [-T] 源文件 目标文件
 或:mv [选项]... 源文件... 目录
 或:mv [选项]... -t 目录 源文件...
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

Mandatory arguments to long options are mandatory for short options too.
      --backup[=CONTROL]       为每个已存在的目标文件创建备份
  -b                           类似--backup 但不接受参数
  -f, --force                  覆盖前不询问
  -i, --interactive            覆盖前询问
  -n, --no-clobber             不覆盖已存在文件
如果您指定了-i、-f、-n 中的多个,仅最后一个生效。
      --strip-trailing-slashes	去掉每个源文件参数尾部的斜线
  -S, --suffix=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 newer
                                 than the destination file or when the
                                 destination file is missing
  -v, --verbose                explain what is being done
  -Z, --context                set SELinux security context of destination
                                 file to default type
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出

2)常用参数

-i若存在同名文件,则向用户询问是否覆盖
-f覆盖已有文件时,不进行任何提示
-b当文件存在时,覆盖前为其创建一个备份
-u当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作

三、参考实例

1)"mv=mv -i"mv命令移动文件若碰到同名文件,会提问用户是否要覆盖。

[root@localhost data]# alias -p | grep mv
alias mv='mv -i'

[root@localhost data]# ll
总用量 0
-rw-r--r--. 1 root root 0 2月   8 16:37 b.txt
-rw-r--r--. 1 root root 0 2月   8 16:37 c.txt
-rw-r--r--. 1 root root 0 2月   8 16:37 d.txt
-rw-r--r--. 1 root root 0 2月   8 16:37 e.txt
drwxr-xr-x. 2 root root 6 2月   8 16:40 test12
[root@localhost data]# touch test12/{a..d}.txt
[root@localhost data]# mv c.txt test12/
mv:是否覆盖"test12/c.txt"? y
[root@localhost data]# 

2) 可以看到加了-f参数后,覆盖同名的文件,没有任何提示。

[root@localhost data]# ll
总用量 0
-rw-r--r--. 1 root root  0 2月   8 16:37 b.txt
-rw-r--r--. 1 root root  0 2月   8 16:37 d.txt
-rw-r--r--. 1 root root  0 2月   8 16:37 e.txt
drwxr-xr-x. 2 root root 58 2月   8 16:50 test12
[root@localhost data]# mv -f b.txt test12/b.txt 

3)在生产过程中不建议加-f参数,可以加-b参数,同名的文件覆盖前,会自主创建一个备份文件;可以看到的是移动到test目录中有同名文件时,test目录下的文件的名称改动了d.txt~。

用--backup和-b参数是一样效果的。

[root@localhost data]# mv -b d.txt test12/
mv:是否覆盖"test12/d.txt"? y
[root@localhost data]# ll test12/
总用量 0
-rw-r--r--. 1 root root 0 2月   8 16:50 a.txt
-rw-r--r--. 1 root root 0 2月   8 16:37 b.txt
-rw-r--r--. 1 root root 0 2月   8 16:50 c.txt
-rw-r--r--. 1 root root 0 2月   8 16:37 d.txt
-rw-r--r--. 1 root root 0 2月   8 16:50 d.txt~


[root@localhost data]# touch a.txt
[root@localhost data]# mv a.txt test12/ --backup
mv:是否覆盖"test12/a.txt"? y    
[root@localhost data]# ll test12/
总用量 0
-rw-r--r--. 1 root root 0 2月   8 16:58 a.txt
-rw-r--r--. 1 root root 0 2月   8 16:50 a.txt~

4)使用-u参数时,除非源文件比目标文件要新,或者目标文件没有相同的,才会移动。

可以看到的是先查看data目录下的e.txt创建时间,使用-u参数移动到目标test目录下时,再次查看源文件还存在data目录;可以看出,源文件比目标文件创建时间早,是不会移动成功的。

[root@localhost data]# stat e.txt 
  文件:"e.txt"
  大小:0         	块:0          IO 块:4096   普通空文件
设备:fd00h/64768d	Inode:67259263    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2023-02-08 16:37:52.870740564 +0800
最近更改:2023-02-08 16:37:52.870740564 +0800
最近改动:2023-02-08 16:38:20.823723902 +0800
创建时间:-
[root@localhost data]# touch test12/e.txt
[root@localhost data]# mv -u e.txt  test12/
[root@localhost data]# stat e.txt 
  文件:"e.txt"
  大小:0         	块:0          IO 块:4096   普通空文件
设备:fd00h/64768d	Inode:67259263    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2023-02-08 16:37:52.870740564 +0800
最近更改:2023-02-08 16:37:52.870740564 +0800
最近改动:2023-02-08 16:38:20.823723902 +0800
创建时间:-
[root@localhost data]# ll e.txt 
-rw-r--r--. 1 root root 0 2月   8 16:37 e.txt

5)重命名文件,同目录下移动等于重命名文件;用stat查看只有ctime发生变化。

[root@localhost data]# ll
总用量 0
-rw-r--r--. 1 root root  0 2月   8 16:37 e.txt
drwxr-xr-x. 2 root root 99 2月   8 17:01 test12
[root@localhost data]# mv e.txt end.txt
[root@localhost data]# ll
总用量 0
-rw-r--r--. 1 root root  0 2月   8 16:37 end.txt
drwxr-xr-x. 2 root root 99 2月   8 17:01 test12

[root@localhost data]# stat end.txt
  文件:"end.txt"
  大小:0         	块:0          IO 块:4096   普通空文件
设备:fd00h/64768d	Inode:67259263    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2023-02-08 16:37:52.870740564 +0800
最近更改:2023-02-08 16:37:52.870740564 +0800
最近改动:2023-02-08 17:06:35.301346390 +0800
创建时间:-

总结

mv命令使用-f参数要谨慎些,最好先确认下目标目录下有没有同文件的信息,若不放心,可以直接用-b参数或者--backup,同文件会保留下来。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Linux中,可以使用stat命令或ll命令来查看文件的时间。使用stat命令,可以查看某个文件的状态,包括文件的访问时间、修改时间和改动时间。例如,可以使用stat命令来查看文件3.log的状态:stat 3.log。也可以使用ll --time命令来查看文件的时间,默认是修改时间(mtime),也可以使用ll --time=atime来查看访问时间,或者使用ll --time=ctime来查看改动时间。 此外,还可以通过修改文件的时间来改变文件的访问时间和修改时间。有几种方法可以实现这个目的: 1. 同时修改文件的访问时间和修改时间:可以使用touch命令,例如touch 文件名。 2. 只修改文件的修改时间:可以使用touch命令的-m选项,例如touch -m 文件名。 3. 只修改文件的访问时间:可以使用touch命令的-a选项,例如touch -a 文件名。 4. 将一个文件的时间,修改为和另一个文件的时间相同:可以使用touch命令,将一个文件的时间修改为和另一个文件的时间相同,例如touch -r 源文件 目标文件。 总结起来,Linux中可以使用stat命令或ll命令来查看文件的时间,使用touch命令来修改文件的时间。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [linux - 查看/修改文件的修改时间](https://blog.csdn.net/qq_39900031/article/details/123273907)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux学习中

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值