Linux节点修改名称,简述Linux递归修改后缀名

文件后缀名也叫文件扩展名,是用来表示某种文件格式所采用的机制。文件扩展名是加在主文件名后面的,用“.”分隔。不同的软件要求不同的文件格式,后缀名可以帮助用户了解文件是应该使用哪种软件打开文件。在Linux系统中,文件需要Linux递归修改后缀名。

Linux递归修改后缀名需要用到以下三个命令:

1.find

2.awk

3.xargs

递归修改命令如下:

find . -name '*.XXX' | awk -F "." '{print $2}' | xargs -i -t mv ./{}.XXX ./{}.XXXX

把XXX后缀修改为XXXX。

1.find

find用来在指定目录下查找文件,位于参数之前的字符串都被视为需要查找的目录。 find . -name '*.XXX'中:

.表示当前文件夹

-name表示文件名符合name的文件,有一个类似的-iname会忽略大小写

*.XXX表示寻找所有的XXX后缀的文件

其他常用例子:

find . -type f:递归列出一般文件

find . -ctime -20:递归列出最近20天内更新过的文件

find /var/log -type f -mtime +7 -ok rm {} \;:查找/var/log下更新时间在7日以前的普通文件,并在删除之前询问

find . -type f -perm 644 -exec ls -l {} \;:查找当前目录下权限为644的文件

find / -type f -size 0 -exec ls -l {} \;:查找/下文件大小为0的普通文件并列出完整路径。

2. awk

awk是一种处理文本文件的语言,是一个强大的分析工具。 awk -F "." '{print $2}'中:

-F指定输入文件拆分分隔符,因为需要修改后缀名,后缀名与主文件名由.分隔,因此后面加上"."参数

'{print $2}':print表示打印,$在awk中表示字段引用,这里$2表示引用第二个字段,字段根据前面的-F参数进行分隔。

因为find打印出来的是./a/b/c.XXX,因此print $2会打印其中第二个字段,就是路径/a/b/c,而print $1为空(因为第一个.之前没有其他内容),print $3为后缀名。

3.xargs

xargs是给命令传递参数的一个过滤器,可以将管道或者标准输入数据转换为命令行参数,默认的命令为echo。使用xargs可以对不支持管道的命令添加类似管道的功能,比如:

find . -name '*.jpg' | ls -l

# 错误,但是能执行,执行的结果仅仅是ls -l的结果

find . -name '*.jpg' | xargs ls -l

# 正确

xargs -i -t mv ./{}.XXX ./{}.XXXX中:

-i表示将xargs的每项名称,一般是一行一行赋值给后面的{}

-t可选,表示先打印需要执行的命令(这里是先打印mv)再执行

mv:重命名

{}:配合-i使用,这里的{}表示前一步awk中的路径名,对每一个路径都执行一次mv,也就是修改后缀名。

以上就是Linux递归修改后缀名需要用到的三个命令,缺一不可。在本站的Linux教程中,对Linux中文件的许多操作命令都有详细的介绍,感兴趣的小伙伴可以在你的Linux系统中对文件进行相应的命令操作,检验一下是否可行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值