批量更改文件名

#### 题目要求
找到/123目录下所有后缀名为.txt的文件
 1. 批量修改.txt为.txt.bak
 2. 把所有.bak文件打包压缩为123.tar.gz
 3. 批量还原文件的名字,即把增加的.bak再删除

#### 核心要点
* find用来查找所有.txt文件
* tar打包一堆文件
* 还原文件名用for循环

#### 参考答案

 touch {1..50}.txt
#!/bin/bash find /123/ -type f -name "*.txt" > /tmp/txt.list for f in `cat /tmp/txt.list` do mv $f $f.bak done
find /123/ -type f -name *.txt |xargs -i mv {} {}.bak
find /123/ -type f -name *.txt -exec mv {} {}.bak \;
for f in `cat /tmp/txt.list`
do
    echo $f.bak
done > /tmp/txt.bak.list 
tar -czvf 123.tar.gz `cat /tmp/txt.bak.list |xargs `

for f in `cat /tmp/txt.list`
do 
    mv $f.bak $f
done 

 

posted @ 2021-02-19 10:42  星火撩原  阅读(131)  评论(0编辑  收藏  举报