Shell 脚本案例:文件分类归档整理

【需求】 请撰写一个名为 /home/centos/file_classify.sh 的脚步来进行目录文件分类,具体要求如下:

        a) 脚本能够对给定的目录下的文件按照文件类型进行分类(文件类型通过文件扩展名进行区别)

        b) 需要划分类型为文本文件(.txt)、图像文件(.jpg)、音频文件(.mp3) 三种文件

        c) 脚本首先接收用户输入的需要整理的目录路径,然后在需要整理的目录中创建三个分类目录分别是 text、img、music,然后把需要整理的目录中相应的文件归类到三个目录中。

  1   1 #!/bin/bash
  2 :<<!
  3 ########文件归档整理脚本########
  4 # 该脚本用于txt、zip、py文件的整理归档
  5 # 运行后会在源目录创建file_classify目录用于文件的拷贝整理
  6 # wzihua@foxmail.com
  7 !
  8 
  9 # 获取需要整理的目录
 10 read -p "请输入PATH:" KEY
 11 
 12 # 获取目录内容
 13 filelist=$(ls $KEY)
 14 
 15 # 建立归档文件夹
 16 echo "建立整理文件夹:"
 17 mkdir -pv $KEY/file_classify/{text,zip,py}
 18 
 19 # 按照文件扩展名整理文件并拷贝归档
 20 for file in $filelist
 21 do
 22         extension=${file##*.}
 23         echo $file
 24         if [ "$extension" = "py" ]; then
 25             cp $KEY/$file $KEY/file_classify/py
 26             echo "归档至$KEY/file_classify/py"
 27         elif [ "$extension" = "zip" ]; then
 28             cp $KEY/$file $KEY/file_classify/zip
 29             echo "归档至$KEY/file_classify/zip"
 30         elif [ "$extension" = "txt" ]; then
 31             cp $KEY/$file $KEY/file_classify/text
 32             echo "归档至$KEY/file_classify/text"
 33         else echo "未知的文件属性:不予归档!"
 34         fi
 35         echo "*****************"
 36 done
 37 
 38 # 整理完成
 39 echo "整理完成,是否查看结果树形目录:(Y/N)"
 40 read -p "" res
 41 if [ "$res" = "Y" ] || [ "$res" = "y" ]; then
 42         tree $KEY/file_classify
 43         echo "execute OK!"
 44 else echo "execute OK!"
 45 fi

###                 执行效果如下

[centos@localhost ~]$ bash file_classify.sh 
请输入PATH:/home/centos
建立整理文件夹:
mkdir: 已创建目录 '/home/centos/file_classify'
mkdir: 已创建目录 '/home/centos/file_classify/text'
mkdir: 已创建目录 '/home/centos/file_classify/zip'
mkdir: 已创建目录 '/home/centos/file_classify/py'
666.py
归档至/home/centos/file_classify/py
*****************
期中作业.txt
归档至/home/centos/file_classify/text
*****************
视频
未知的文件属性:不予归档!
*****************
babak.py
归档至/home/centos/file_classify/py
*****************
com1.zip
归档至/home/centos/file_classify/zip
*****************
compress1
未知的文件属性:不予归档!
*****************
compress1.zip
归档至/home/centos/file_classify/zip
*****************
hhh.py
归档至/home/centos/file_classify/py
*****************
history
未知的文件属性:不予归档!
*****************
home
未知的文件属性:不予归档!
*****************
l666.py
归档至/home/centos/file_classify/py
*****************
test.sh
未知的文件属性:不予归档!
*****************
who.out
未知的文件属性:不予归档!
*****************

整理完成,是否查看结果树形目录:(Y/N)
y
/home/centos/file_classify
├── py
│   ├── 666.py
│   ├── babak.py
│   ├── hhh.py
│   └── l666.py
├── text
│   └── 期中作业.txt
└── zip
    ├── com1.zip
    └── compress1.zip

3 directories, 7 files
execute OK!

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北方有你.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值