精华内容
下载资源
问答
  • -b--backup的简单模式不接受参数--backup[=CONTROL]如果目标文件存在,覆盖前,给被覆盖的文件创建一个备份...-n使用这个参数文件不会被覆盖示例# 修个目录名字mv dir1 dir2mv dir2/ dir1 # 加不加 / 都可以# 修改文...

    -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

    展开全文
  • 满意答案单纯的依靠mv命令做不到,需要脚本来实现编写脚本 rename 如下#----------------------------------------------#!/bin/shls -l $1 | grep ^[^d] | awk '{print $9}'| while read line; dodo=`echo $line | ...

    满意答案

    单纯的依靠mv命令做不到,需要脚本来实现

    编写脚本 rename 如下

    #----------------------------------------------

    #!/bin/sh

    ls -l $1 | grep ^[^d] | awk '{print $9}'| while read line; do

    do=`echo $line | grep $2`

    if [ ! "$do" = "" ]; then

    newname=`echo $line | sed 's/'$2'/'$3'/g'`

    echo "rename $line to $newname ..."

    mv $1/$line $1/$newname

    fi

    done

    #------------------------------------------------

    将以上保存为 rename文件,

    然后运行

    chmod +x rename

    使rename可运行

    然后按照如下格式执行rename

    假设rename在当前路径

    $./rename [fullpathtofiles] .sql.cluster1 .sql

    [fullpathtofiles] 指向你的BAOAN102671.sql.cluster1 这些文件的全路径即可

    参考以下我的演示 ,将具体路径替换到你的即可,实际测试通过

    --------------------------------

    root@bogon~/testmv# ls

    12343234234.sql.cluster1 323423423423.sql.cluster1 sdfdssddd.sql.cluster1

    root@bogon~/testmv# cd ..

    root@bogon~# ./rename ./testmv/ .sql.cluster1 .sql

    rename 12343234234.sql.cluster1 to 12343234234.sql ...

    rename 323423423423.sql.cluster1 to 323423423423.sql ...

    rename sdfdssddd.sql.cluster1 to sdfdssddd.sql ...

    root@bogon~# cd testmv

    root@bogon~/testmv# ls

    12343234234.sql 323423423423.sql sdfdssddd.sql

    -----------------------------------------------------

    00分享举报

    展开全文
  • Linux命令修改文件名和文件夹名

    千次阅读 2020-12-31 13:40:36
    Linux修改文件名 语句:mv oldFileName newFileName 示例:我想把 aaa.txt修改为 bbb.txt 示例语句:mv aaa.txt bbb.txt 把当前目录下的file1文件名改成file2,如果该目录下有file2,则覆盖以前的file2文件。

    Linux修改文件名

    语句:mv oldFileName newFileName

    示例:我想把 aaa.txt修改为 bbb.txt

    示例语句:mv aaa.txt bbb.txt

    把当前目录下的file1文件名改成file2,如果该目录下有file2,则覆盖以前的file2文件。

    展开全文
  • 1.rename命令批量修改文件名, 其实linux下可以使用别的办法来批量修改文件名, 不过rename实在太方便了比如把所有的表为cdb1_* 修改为cdb_*的在本目录下只需要# rename 'cdb1' 'cdb' *以前都是写个for循环来做......

    1.rename命令批量修改文件名, 其实linux下可以使用别的办法来批量修改文件名, 不过rename实在太方便了

    比如把所有的表为cdb1_* 修改为cdb_*的

    在本目录下

    只需要# rename 'cdb1' 'cdb' *

    以前都是写个for循环来做...想想多傻啊, 呵呵

    rename还有更多的功能, 建议man rename下

    From:http://www.hao32.com/unix-linux/42.html

    2.批量更改文件名 rename通过 man rename 命令可以得知,rename 命令其实是一个 Perl 脚本命令,它专用于批量地给多文件重命名(rename multiple files)。命令格式:rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]perlexpr 是一种 Perl 脚本格式的正则表达式。参数:-v, --verboseVerbose: print names of files successfully renamed.详细模式:打印成功更改的文件名列表-n, --no-actNo Action: show what files would have been renamed.测试模式:并不真正的执行命令,而只是显示哪些文件名应该怎么进行更改,用于测试模式。-f, --forceForce: overwrite existing files.强制模式:在更改文件名,如果更改后的文件已经存在时覆盖已经存在的文件。rename 的典型应用:0.批量更改文件扩展名$ ls1.txt 2.txt 3.txt 4.txt$ rename 's/\.txt/\.ext/' *$ ls1.ext 2.ext 3.ext 4.ext1. 批量删除文件扩展名$ ls1.txt 2.txt 3.txt 4.txt$ rename 's/\.txt//' *$ ls1 2 3 42. 批量添加文件扩展名$ ls1 2 3 4$ rename 's/$/\.txt/' *$ ls1.txt 2.txt 3.txt 4.txt3. 按自己的方式批量重命名文件$ ls1.ext 2.ext 3.ext 4.ext$ rename 's/(\d)/第$1 章/' *$ ls第 1 章.ext 第 2 章.ext 第 3 章.ext 第 4 章.ext3.

    方法1:把文件名拆分处理,可以任意修改文件名

    find -name '*.log' -printf %f\\n|awk -F'.' '{print $1}'|xargs -i{} mv {}.log xiyun_{}.log

    方法2:利用rename

    一般的linux下的rename命令比较简单

    rename 'test' 'xiyun' '*.log'

    把文件名中的某部分字符串替换掉

    ubuntu下的rename命令支持正则表达式,因此功能更强大。方法3:直接利用find和xargs和mv,中间不用awk,这样只能添加后缀名,不能修改文件名

    展开全文
  • ~/public_web_sSmO9OUVY1/files/image$ date +%Y%m%d200911121、使用find、awk/grep/sed、mv命令组合来实现Ubuntu下利用awk命令进行制作,操作如下1)找到需要进行操作的文件名Zianed@ubuntu:~/p...
  • function changeName(){ new=`echo $1|sed 's/^/abc/g'` #new=`echo $1|sed -r 's/abc(.*$)/\1/g'` #echo $new mv $1 $new } 下一面一句注释的代码:sed命令支持正则表达式,我们将文件名作为sed命令的输入处理,'s...
  • vi编辑器是全部Unix及Linux系统下标准的编辑器,它用于文本编辑html语法:linuxvi 文本名称 》 有则打开,没有则建立vim或者编辑器vi 文本绝对路径 spa进入到文本编辑页面时输入 i / o / a 进入 insert 模式 就能够...
  • Linux下可以用rename命令,当然还可以使用mv命令如下:Linux修改文件名语句:mv oldFileName newFileName示例:我想把 aaa.txt修改为 bbb.txt示例语句:mv aaa.txt bbb.txt把当前目录下的file1文件名改成file2,...
  • ming内容前要:同事有一个批量改服务器...所以下面整理一下批量修改文件名命令。===================================================我是分隔符================================================首先 你要先知...
  • Linux下批量修改文件名的方法在Linux环境下修改文件名可以有不同的命令方式,比如rename、mv都可以进行修改,如果用户正在了解这方面的知识,可以阅读下文了解Linux修改文件名以及批量修改文件名的方法。对于单个的...
  • 对于在Linux修改文件名的方式一般我们会用mv命令进行修改,但是mv命令是无法处理大量文件修改名称。但是在处理大量文件的时候该如何进行批量修改呢?方法一:mv配合for循环方式进行修改[root@show day74]# for ...
  • Linux批量修改文件名

    2021-10-24 15:44:32
    例如:在工作中经常会遇到要在linux系统下,批量修改目录里文件名的需求,很多人习惯一个文件一个文件的修改,这里就是帮忙解决批量修改文件名的问题,也提醒大家遇到问题多搜一搜解决办法 提示:下面案例可供参考 ...
  • 还有几个比较实用的例子: 1) 批量去掉文件名里的空格 Linux文件名本来是不支持空格的,不知道什么时候允许了,当然,在命令行调用文件的时候,空格是很有问 题滴,比如你 原来可以直接 mv oldfile newfile 但...
  • 昨天有需要要用到 Linux 批量改文件名,网上查了下,...rename 可以批量修改文件名,还支持正则表达式。这样就简单多了嘛,正则表达式写起来还是简单的,而且看一下示例就会了。直接输入 rename 回车即可看到帮助...
  • 作者:matrix被围观: 2,964 次...win上的打包的文件丢到linux解压发现中文的前缀乱码,本来mv命令到是可以修改 顾于文件太多,发现用rename方便的多需要将╬в╨┼═╝╞м_20180626102853.jpg修改还原为微信图片_...
  • 1.rename命令批量修改文件名, 其实Linux下可以使用别的办法来批量修改文件名, 不过rename实在太方便了比如把所有的表为cdb1_* 修改为cdb_*的在本目录下只需要# rename ‘cdb1‘ ‘cdb‘ *以前都是写个for循环来做......
  • mv(move)命令既可以在不同的文件之间移动文件和目录,也可以重新命名文件和目录。mv命令不影响被移动或改名的文件或目录中的内容。...还可以使用mv命令改变一个文件的文件名,例如:将baby子目录中的l...
  • 文件和目录常用命令查看目录内容ls切换目录cd创建和删除操作touchrmmkdir拷贝和移动文件cpmv查看文件内容catmoregrep其他echo重定向 > 和 >>管道 |01. 查看目录内容1.1 终端实用技巧1> 自动补全在敲出 ...
  • 还有几个比较实用的例子: 1) 批量去掉文件名里的空格 Linux文件名本来是不支持空格的,不知道什么时候允许了,当然,在命令行调用文件的时候,空格是很有问 题滴,比如你 原来可以直接 mv oldfile newfile 但...
  • Linux中批量修改文件名有时候我们有一个目录下面的文件名都需要重新命令如: 以下有十个学生完成的脚本,现在需要将finish改为ing[root@slavetest]#touchstudent_{01..10}_finish.sh[root@slavetest]#lsstudent_*...
  • for file in `ls | grep 文件名` do newfile=`echo $file | sed 's/查找的字符串/想要替换的字符串/g'` mv $file $newfile done -------以下为示例批量替换文件名称, 目的想找出 文件名称带res2openserv的...
  • 但是 locate 命令的局限也很明显,它只能按照文件名来搜索文件,而不能执行更复杂的搜索,比如按照权限、大小、修改时间等搜索文件。如果要按照复杂条件执行搜索,则只能求助于功能更加强大的 find 命令。locate ...
  • 需求: 更改基本文件名只有1个字符的扩展文件名如将1.txt, 2.txt, a.txt更改为 1.kk, 2.kk, a.kk而12.txt, 22.txt, a33.txt不会被更改命令:rename 's/(^.)\.kk/$1.uuu/' *命令:‘s/x/y’ 中,s是命令搜索,‘/'是...
  • Linux文件的时间及修改命令touchLinux系统中的文件主要有三个时间参数,他们分别是修改时间(modification time,mtime)、状态时间(status time,ctime)、访问时间(access time,atime),具体含义如下:⑴修改时间...
  • 问题:我想复制一个组文件,但不想逐个输入名称$ ls gmail-meta3*gmail-meta3 gmail-meta3-REC-1558392194-26467821gmail-meta3-LAB-1558392194-26467821 gmail-meta3-YAD-1558392194-26467821如何像旧的DOS命令copy...
  • 我们通常会遇到一个情况,在一个大文件夹下的无数子文件夹里存了无数相同类型的文件,有时发现文件名或扩展名错了需要修改。一个一个手动修改是不可能,写个程序来修改也挺费时。这时就想有没有办法用一条命令搞定?...
  • 每个人都使用 passwd 命令跟上用户名,比如 passwd USERNAME 来为用户设置密码。确保你一定要设置一个难以猜测的密码,这可以帮助你使系统更安全。我的意思是,密码应该是字母、符号和数字的组合。此外,出于安全...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 267,906
精华内容 107,162
关键字:

linuxmv命令更改文件名

linux 订阅