linux mv修改文件名,linux命令mv - 移动或修改文件名

-b

--backup的简单模式不接受参数

--backup[=CONTROL]

如果目标文件存在,覆盖前,给被覆盖的文件创建一个备份。

-f

强制覆盖,不给用户提示确认的机会。有一定得危险性,同时也是很方便的。

-i

使用交互的方式,比如一个文件要被覆盖,提示下用户怎么操作。

-n

使用这个参数文件不会被覆盖

示例

# 修个目录名字

mv dir1 dir2

mv dir2/ dir1 # 加不加 / 都可以

# 修改文件的名字

mv a.txt b.txt # 把文件a.txt 修改成 b.txt

# 一次移动三个文件到 /backup 目录下

mv a.txt b.txt c.txt /backup

# 当前目录里的所有 `.txt` 移动到 /bcakup 目录下

mv *.txt /backup

说明

参数 `f`,`i`,`n`

这个三个参数,如果同时使用,只有最后一个有效果。 f -- 强制覆盖, i -- 交互模式 n -- 不创建新的文件

给目标文件做一个备份

试想, 如果 执行

mv -f a.txt b.txt

这个时候 文件 b.txt 已经存在, 执行这条命令后原来的b.txt 就不存了。 所以说 -f 这个命令有点危险。 如果能覆盖 b.txt 之前,创建个 b.txt的备份文件就好了。 -b, --backup 就是解决这个问题的。

#创建文件a.txt 内容是空的。

touch a.txt

# 创建一个文件 b.txt, 内容是 'abc'

echo "abc" > b.txt

# 文件 b.txt 被覆盖前进行备份

mv -fb a.txt b.txt

查看一下结果

ls

b.txt b.txt~

# 这里可以看到 a.txt 已经不存在了,多了一个 b.txt~ 这个就是备份的文件

使用自己制定的后缀备份

我们看到到文件 b.txt~ 后面多了一个 ~, 这个东西是可以制定的。使用参数-S

# 同时创建两个文件

touch a.txt b.txt

mv -fS.backup a.txt b.txt

ls

#输出的结果

ls

b.txt b.txt.backup

更有意思的用法 , 使用时间作为后缀

[linuxjia@com] touch a.txt b.txt

[linuxjia@com] mv -fS`date "+%F"` a.txt b.txt

[linuxjia@com] ls

b.txt b.txt2016-02-24

这种功能用来按天来处理的日志就方便多了。

备份的模式, 也就是 --backup=备份模式,三种模式

none 和 off 不进行备份

number 和 t 使用数字,知道是第几次被覆盖。(看上后面示例)

existing 和 nil 简单的备份, 仅仅以一个备份。 (看上后面示例)

不备份

[linuxjia@com] touch a.txt b.txt

# 执行命令,没有提示直接覆盖,这个就是不进行备份, 即使使用 -b 也没用

[linuxjia@com] mv --backup=none -b a.txt b.txt

[linuxjia@com] ls

b.txt

使用数字,知道被覆盖了几次

[linuxjia@com] touch a.txt b.txt c.txt d.txt

[linuxjia@com] ls

a.txt b.txt c.txt d.txt

[linuxjia@com]

[linuxjia@com] mv --backup=t -f a.txt d.txt

# 这里出现了1

[linuxjia@com] ls

b.txt c.txt d.txt d.txt.~1~

[linuxjia@com] mv --backup=t -f b.txt d.txt

# 这里出现了2

[linuxjia@com] ls

c.txt d.txt d.txt.~1~ d.txt.~2~

[linuxjia@com] mv --backup=t -f c.txt d.txt

#这里出现了3

[linuxjia@com] ls

d.txt d.txt.~1~ d.txt.~2~ d.txt.~3~

简单处理备份

这备份没有 -t 方式复杂, 仅仅保留一份,不会保留每一个备份

# 创建四个文件

[linuxjia@com] touch a.txt b.txt c.txt d.txt

[linuxjia@com] ls

a.txt b.txt c.txt d.txt

[linuxjia@com]

# 执行这个命令后发现,简单的做个备份

[linuxjia@com] mv --backup=existing a.txt d.txt

[linuxjia@com] ls

b.txt c.txt d.txt d.txt~

# 文件少了一个, 是 d.txt~ 被覆盖了吗?

[linuxjia@com] mv --backup=existing b.txt d.txt

[linuxjia@com] ls

c.txt d.txt d.txt~

# 验证猜想, 把内容写入 d.txt 中。

[linuxjia@com] echo 'ddddd' > d.txt

[linuxjia@com] mv --backup=existing c.txt d.txt

[linuxjia@com] ls

d.txt d.txt~

# 出现这个就表示,猜想是对的。

[linuxjia@com] cat d.txt~

ddddd

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值