Linux 递归修改后缀名
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 递归修改后缀名的更多相关文章
- Linux下批量修改后缀名
1.用find和xargs添加后缀名 [root@node99 yum.repos.d]# ls -ltr total 32 -rw-r--r--. 1 root root 5701 Nov 23 2 ...
- Linux下修改主机名步骤
Linux下修改主机名为gpdb 步骤一.运行vi /etc/sysconfig/network命令 NETWORKING=yesHOSTNAME=gpdb 步骤二.运行hostname gpdb命令 ...
- 我用过的Linux命令--修改主机名
下面的所有设置都是在CentOS中实验的,其他的Linux系统的玩法是一样的,只是配置文件的目录可能不一样. 局域网中的主机名类似于广域网中的域名,修改主机名有两种方式: (1)在当前会话中修改主机名 ...
- redhat系列linux系统 修改主机名的正确方法
##注:无特别说明,以下称呼的linux系统统一视为redhat系linux redhat系列linux系统 如果想修改主机名 很多人可能都会以为是: $hostname NEW-NAME 或者在 / ...
- python-argparse批量修改后缀名-batch_file_rename.py
#!/bin/usr/env python3 __author__ = 'nxz' import os import argparse def batch_rename(work_dir, old_e ...
- 【Linux 运维】linux系统修改主机名
主机名的修改: 1.命名解释: [root@localhost~]# 分别代表: 用户名(root) 主机名(localhost) 当前路径(~,当前用户的home目录) 权限标志位(#代表root ...
- Linux之修改主机名(永久生效)
Linux系统安装好后,都会有默认的主机名,这里以CentOS系统为例,默认的主机名为localhost.localdomain,为了便于使用,我们常常需要修改主机名,下面演示的是永久更改主机名的方法 ...
- SuSE Linux上修改主机名
1) 临时修改主机名 临时修改使用hostname即可,格式为:hostname 新主机名.Hostname命令除可以临时修改主机名外,还可以用它来查看主机名,不带参数执行它,即为查看主机名. 2) ...
- Linux 永久修改主机名hostname
前言: 由于最近用3台机器,经常切换导致有容易区别的需求. 故想修改主机名. 实验环境:Ubuntu 17 教程: 1. 使用hostname 命令先临时修改 sudo hostname your_n ...
随机推荐
- requests页面请求返回400:{"errors":{"username":"值必须是非空字符串。"}}
我的描述:我引入requests包,携带json类型数据请求(POST)一个网站,,访问提示<Response [400]> 解决方案: 1.首先使用postman请求一模一样的数据,发现 ...
- vue页面嵌套其他页面判断是否生产https
if (location.protocol.indexOf('https') > -1) { var oMeta = document.createElement('meta'); oMeta. ...
- winform导出csv
public void ExportToSvc1(string strFileName) { string strPath = strFileName + ".csv"; Stri ...
- A study on ILC for linear discrete systems with single delay
论文题目就是随笔的题目,以后的随笔的命名都是如此,特此说明. 论文的主要内容是偏理论研究的,引入了离散矩阵延迟指数函数,来处理具有单时滞线性离散系统.对于离散延迟矩阵指数函数其定义为: \[e_{m} ...
- Vue学习笔记-django-cors-headers安装解决跨域问题
一 使用环境: windows 7 64位操作系统 二 jango-cors-headers安装解决跨域问题(后端解决方案) 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的 ...
- @Transaction注解失效的几种场景
一.@Transactional介绍 1.@Transactional注解可以作用于哪些地方? @Transactional 可以作用在接口.类.类方法上. 作用于类:表示所有该类的public方法都 ...
- 后端程序员之路 47、Hadoop hdfs
Hadoop的核心是HDFS和MapReduce,而两者只是理论基础,不是具体可使用的高级应用,Hadoop旗下有很多经典子项目,比如HBase.Hive等,这些都是基于HDFS和MapReduce发 ...
- 机械硬盘换固态硬盘&重装系统
起初 笔记本电脑购买于2016年底,i7四代处理器,940M显卡,4G内存,500G固态硬盘,这样的配置已经跟不上使用需求了.于是先把内存条升级成了单根8G金士顿内存条,豁然发现使用chrome浏览器 ...
- 关于 JMeter 5.4.1 的一点记录
APACHE JMeter table { border: 0; border-collapse: collapse; background-color: rgba(255, 245, 218, 1) ...
- 基于CameraLink的逻辑综合和版图设计
前期接口设计用的是Vivado18.3+Modelsim10.6,逻辑综合及版图生成的环境是Ubuntu16,逻辑综合用的工具Design Compiler,生成版图用的工具是Encounter. 下 ...