shell習題,批量更改文件名

需求:bash

  1. 找到/123目錄下全部後綴名爲.txt的文件ide

  2. 批量修改.txt爲.txt.bakit

  3. 把全部.bak文件打包壓縮爲123.tar.gzclass

  4. 批量還原文件的名字,即把增長的.bak再刪除打包


答案:date

#!/bin/bash
##查找txt文件
find /tmp/123  -type f -name "*.txt" > /tmp/txt.list
##批量修改文件名
for i in `cat /tmp/txt.list`
do
     mv $i $i.bak
done
##建立一個目錄,爲了不目錄已經存在,因此要加一個複雜的後綴名
d=`date +%y%m%d%H%M%S`
mkdir 123_$d
##把.bak文件拷貝到/tmp/123_$d
for b in `cat /tmp/txt.list`
do
   cp $i.bak  /tmp/123_$d
done
##打包壓縮
cd /tmp
tar -czf 123.tar.gz 123_$d/
##還原
for b in `cat /tmp/txt.list`
do
    mv $i.bak $i
done
##刪除123_$d目錄
rm -fr 123_$d
相關文章
相關標籤/搜索