【需求】 请撰写一个名为 /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!