Linux 递归修改后缀名
2020-07-04 22:44
1476 查看
1 修改命令
需要用到:
find
awk
xargs
递归修改命令如下:
find . -name '*.XXX' | awk -F "." '{print $2}' | xargs -i -t mv ./{}.XXX ./{}.XXXX
把
XXX后缀修改为
XXXX。
2 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的普通文件并列出完整路径3
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
为后缀名4
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介绍及安装过程 常用的命令 对目录或文件的增删改查 压缩和解压缩 用户和权限 shell/shellScript linux的一些其他命令
- linux基础知识(待更新)
- 修改selinux导致虚拟机无法开启问题
- Vmware CentOS7配置共享文件夹
- CentOS7部署网盘网站
- 虚拟机CentOS7配置网络-NAT模式
- 虚拟机Linux CentOS7安装图形界面操作系统(整套带后续联网等配置)
- Linux操作系统基本命令大全
- Centos安装k8s集群全过程记录!!!
- centos7.0下外部连接不上mysql8.0及navicate连接报错问题
- linux ssh 端口转发
- 华为云linux下安装mysql-5.7.30centos详细步骤
- Linux部署入侵检测系统(IDS)
- 华为云linux下配置java环境变量
- Linux常用命令
- Linux(入门基础):121---性能监控命令(nmon、glances)
- Linux(程序设计):39---strace系统调用检测工具
- node.js/npm升级正确操作(windows和linux均有)
- node.js/npm升级正确操作(windows和linux均有)
- Linux傻瓜式七步完美安装Python3.7