Linux 递归修改后缀名
1 修改命令
需要用到:
findawkxargs
递归修改命令如下:
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 ...
随机推荐
- scrapy 运行逻辑
爬虫的步骤:发送请求获得响应→解析并提取数据→保存数据 我们沿用这个朴素的逻辑去理解scrapy 一.发送请求获得响应 1.爬虫发送请求request到引擎 2.引擎将请求request传递给调度器s ...
- 运用Spock编写高质量单元测试
单元测试作为提升代码质量的有效方法,目前在国内各大互联网公司的开发团队中,尤其是业务团队中却鲜少被使用.这主要由于大家对于单元测试有一些认知错误,或者没有正确的打开方式.至今我们团队在小剧场.零代码运 ...
- 微信小程序:上滑触底加载下一页
给商品列表页面添加一个上滑触底加载下一页的效果,滚动条触底之后就发送一个请求,来加载下一页数据, 先在getGoodsList中获取总条数 由于总页数需要再另外的一个方法中使用,所以要把总页数变成一个 ...
- Js和JQuery基础
1.JavaScript的组成 CMAScript (核心):规定了JS的语法和基本对象 DOM 文档对象模型:处理网页内容的方法和接口 BOM 浏览器对象模型:与浏览器交互的方法和接口 2.Java ...
- 查看手机CPU每个APP利用率
adb shell top -m 5
- Qt+opencv亲自配置教程
了别人的配置,总是无法配置成功,自己慢慢摸索配置成功.我失败的原因是在于自己本机的环境变量和他们不同,特此记下,分享给有相同问题的朋友. 一.需要软件 1.cmake 3.11.3(版本无所谓) 2. ...
- 看完我的笔记不懂也会懂----MarkDown使用指南
目录 语法 [TOC] 自动生成目录 1. 标题 2. 文本强调 3. 列表 4. 图片 5. 超链接 6. 文本引用 7. 分割线 8. 代码 9. 任务列表 (MPE专属) 10. 表格 11. ...
- ”capslock+“ 一款超级文本编辑外挂
"capslock+" 一款超级文本编辑外挂 彻底释放大写锁定键"caps lock" 潜力的强大工具 一.基础功能 CapsLock按键与以下按键的组合 实现 ...
- java内存区域的划分
前言 之前我们探讨过一个.class文件是如何被加载到jvm中的.但是jvm内又是如何划分内存的呢?这个内被加载到了那一块内存中?jvm内存划分也是面试当中必被问到的一个面试题. 什么是JVM内存区域 ...
- 部分rpm包总结描述
acl-2.2.51-15.el7.x86_64 Commands for Manipulating POSIX(可移植操作系统接口 of unix) Access Control Lists.有ge ...