dyok 发表于 2018-8-22 11:18:29

每日一道shell 练习(05)——批量打包文件

1. 习题
  找到 /123 目录下所有后缀名为 .txt 的文件


[*]批量修改.txt 为 .txt.bak
[*]把所有.bak 文件打包压缩为 123.tar.gz
[*]批量还原文件的名字,即把增加的.bak 再删除
2. 习题分析


[*]首先要想办法找出 .txt 结尾的文件,用 find 命令。
[*]打包命令用 tarczvf 就可以搞定了,关键是如何同时将所有 .bak 文件打包。
[*]还原文件名有点复杂,关键是如何找到原来的文件名。
3. 具体脚本
  在脚本总已经加进了我的分析,可以看看
  

# cat file_tar.sh  
#!/bin/bash
  

  
# 将符合条件的,以.txt 结尾的文件,保存到 /tmp/file.txt
  
find /usr/local/sbin/work/ -maxdepth 1 -type f -name "*.txt" > /tmp/file.txt
  

  
# 用循环逐行读取 /tmp/file.txt 文件,修改文件名为 .txt.bak
  
while read line ;
  
do
  mv $line $line.bak
  
done
页: [1]
查看完整版本: 每日一道shell 练习(05)——批量打包文件