Linux 重命名文件和目录(linux创建文件目录)

linux Linux 重命名文件和目录 重命名文件和目录是您经常需要在Linux系统上执行的最基本任务之一。重命名单个文件很简单,但一次重命名多个文件可能是一个挑战 By myfreax 26 Sep 2022

重命名文件和文件文件目录就是你常常需在Linux系统上推行的一个重要每日每日任务之一。重命名独立文件比较简单,但一次重命名好多个文件可能是一个磨练。

特别是对于刚接触Linux的用户而言。您可以使用GUI文件可视化工具或命令行智能终端重命名文件。

mv命令重命名文件

mv命令用于将文件从一个位置重命名或移动到另一个位置。那也是mv命令的基本语法mv [OPTIONS] source destination

source源能是一个或多个文件或文件文件目录,destination目标可以是独立文件或文件文件目录。

倘若特定好多个文件作为源source,则destination目标一定要文件文件目录。在这种情况下,源文件将挪到目标目录。

如果将独立文件指定为源source,并且目的是为了文件文件目录,则该文件将挪到特定文件文件目录。

要重命名文件,你需要把独立文件指定为源source,然后把独立文件特定为主要目的destination。例如,以下mv命令将file1.txt重命名为file2.txt

mv file1.txt file2.txt

mv命令重命名好多个文件

mv命令一次仅有重命名一个文件,但它可以与其他命令一起使用,例如find命令在bash的for或while循环中重命名好多个文件。

在以下案例中显示如何使用Bash for循环将重命名文件页面上全部.html文件。然后把.html文件后缀名更改为.php

for f in *.html; do
    mv -- "$f" "${f%.html}.php"
done

让我们解释一下句子的含义,最容易认可当然就是最后一行是shell/bash关键字done说明周而复始结束。

第一行创建一个for循环并取值文件目录下以.html文件文件后缀名的文件。第二行将.html文件移动并重命名文件。

然后把文件的.html文件后缀名替换为.php${f%.html}使用的是shell基本参数扩展,.html很有可能匹配文件名原来文件后缀名,相符的.html便会被删除。

从案例中可以看出,运用mv命令重命名好多个文件并不是一件容易的事,因为她要你能够更好地把握Bash辅助制作程序编程。

mv命令除开可以跟shell脚本的for循环结合之外。大家可以让mv结合find命令来实现与上面相同的功效。

大伙儿还可以使用find命令查找/检索文件目录下以.html结尾的文件。然后使用-exec对每一个文件运作特定命令。

-exec容许特定要运转的命令,find命令将检索的每一个结果一个接一个传输-exec要运转的命令中。

也可以从-exec运转的命令运用字符串数组{}获得正在升级的文件,如果你在运用find命令查找文件运用绝对路径,字符串数组{}将是一个文件的绝对路径。

find . -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' ;

下面我们解释一下上面的find和-exec,mv是怎么搭配所使用的。

find命令之后.说明文件目录,find的-depth选项说明递归算法文件页面上的所有文件文件目录,-name选项明确提出了运用名称进行搜索。

"*.html"通常加上冒号是防止*号被shell描述,*.html说明以.html作为文件后缀名的文件。

-exec sh -c说明-exec要运作命令是sh -c。在类 Unix 电脑系统上,sh是Bourne shell名名称,是Unix和大部分类Unix电脑系统/Linux的需求命令语言表达能力编译程序。-c是sh选项说明加载命令字符串数组并运作。

'f="{}"; mv -- "$f" "${f%.html}.php"'这是一个命令的字符串数组,我认为你应该知道大概寓意,我们这里简单说一下。f="{}"提出要{}选值给变量f{} 是文件名。

最后'f="{}"; mv -- "$f" "${f%.html}.php"' 这一命令字符串数组将由sh来表示并运作。分号;结束exec开展的命令。它得用进行转义,那般你在里面运转的shell 就不会把它当做自己特殊符号,而是将它传递给find。

rename命令重命名文件

rename用于重命名好多个文件。rename命令比照mv,你需要一些正则匹配最高级别理论知识。

rename命令主要有两种版本,句法不一样。在教学中,我们在这里运用rename命令的perl版本。假如你系统内未安装此版本,则能用发行版的app包管理器拼装该版本。

如果你计算机运作就是指依据Debian的Linux发行版,例如Ubuntu,Linux mint。可运作命令sudo apt update && sudo apt install rename拼装rename。

对于依据Redhat的Linux发行版,例如CentOS,Fedora。可运作命令sudo apt update && sudo apt install rename拼装rename。

Arch Linux用户可运作命令yay perl-rename或者yaourt -S perl-rename拼装rename。

sudo apt update && sudo apt install rename
sudo yum install prename
yay perl-rename ## or yaourt -S perl-rename

rename命令的句法结构是rename [OPTIONS] perlexpr files。files说明好多个文件,perlexpr采用的是perl的正则匹配。

rename命令将好多个文件根据指定正则匹配重命名所有文件。你可以在这里阅读更多相关Perl的正则匹配的基本知识。

perl的正则匹配基本语法是action/SEARCHLIST/REPLACEMENTLIST/cdsr。在重命名文件的perl正则匹配常见的s///拆换方法。

action 说明我们需要推行操作过程,SEARCHLIST说明我们需要检索具体内容,REPLACEMENTLIST说明我们需要REPLACEMENTLIST 拆换SEARCHLIST

应用rename重命名文件时,您还可以运用-n基本参数在不真实的运作reanme命令尝试打印出要重命名的文件的名称。这也会不会不重命名你文件,适合于做简易检验。

默认情况下,rename命令不易遮住现阶段文件。传输-f基本参数以允许遮住现阶段文件。

例如,下面的rename命令将变动与文件后缀名.html.php

rename 's/.html/.php/' *.html
rename -f 's/.html/.php/' *.html #遮住现阶段文件
rename -n 's/.html/.php/' *.html #尝试运作,用于检验

导出来看起来像那般:

rename(file-90.html, file-90.php)
rename(file-91.html, file-91.php)
rename(file-92.html, file-92.php)
rename(file-93.html, file-93.php)
rename(file-94.html, file-94.php)

下列属于一些如何使用rename命令比较常见的案例。

用下横线拆换文件名中的空格符

rename 'y/ /_/' *

将文件名转化成小写

rename 'y/A-Z/a-z/' *

将文件名转换成英文英文大写

rename 'y/a-z/A-Z/' *

结论

到这里您应该更好的了解如何使用mvrename命令重命名文件。当然,还有其他命令也可以在Linux中重命名文件,例如mmv。对已经Linux用户可以运用GUI大批重命名常用工具,例如Mtamorphose。

LINUX

Linux time时间命令(linux系统修改时间命令)

2023-1-19 9:35:02

LINUX

如何创建Bash别名(bash 别名)

2023-1-19 9:36:33

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索