Auto classification Example
Created Thursday 03 April 2014
So,we can we up.
刚刚接触Shell,突然想到自己的Download目录是默认 下载目录,每次不同类型文件放在一个文件夹下看起来很乱,ls 一下眼睛都晕了,突发奇想试一试做个格式分类的,例如zip格式放同一个目录下,xx格式放xx目录下,手动mv太麻烦了类似人的节奏。于是试一试。因为系统刚换文件不多,部分文件为touch出来...由于Shell水平太菜了见笑了。
Code
Version 0.1:
#/bin/bash
LUJING=$1 #代表要整理的目录
echo $# # $#表示参数个数,和下面函数无关,纯属看看而已
#定义移动文件的函数。
function move_file()
{
#3个参数,第一个参数是路径,第二个参数的文件类型,第三个是想起的目录名称
file_name=$1
file_type=$2
dir_name=$3
#下面用grep 判断类型后缀在不在文件名中,例如 .txt 在不再myname.txt这个名称中
echo $file_name | grep -q $file_type
if [ $ -eq 0 ];then
#如果grep找到了,就有个EXITVALUE=0,说明找到了,没有就等于1
#$ 表示上一个命令的结束的EXITVALUE值,成功为0,失败为1
if [ ! -d $LUJING/$dir_name ];then #判断是否已经存在目录,不存在就建
mkdir -p $LUJING/$dir_name
fi
#移动文件到文件夹,OK了
mv -fv $LUJING/$i $LUJING/$dir_name/
fi
}
for i in `ls $LUJING`
{
#判断是不是文件
if [ -f $LUJING/$i ];then
#还不会截取后面的,只能有grep方法查找了。定义成函数了直接调用就好
move_file $i ".pdf" "PDF"
move_file $i ".exe" "EXE"
move_file $i ".epub" "EPUB"
move_file $i ".zip" "ZIP"
move_file $i ".tar.gz" "TAR_GZ"
move_file $i ".iso" "ISO"
move_file $i ".7z" "_7z"
move_file $i ".jpg" "Pic"
move_file $i ".rpm" "RPM"
move_file $i ".txt" "TXT"
move_file $i ".html" "HTML"
#其他的放入未分类
move_file $i "." "NotClassFile"
fi
}
effect
[yg@localhost Downloads]$ ls 4df3c207e5ba15f649b7ee55de422d5c.jpg README 590896715b45fe09c8b801132a9b367a.jpg readme.txt dadffe.tar.gz test.txt goagent-goagent-v3.1.6-70-gc761281.zip xx.pdf Linux Shell Scripting Tutorial v2.0.pdf zimlib-devel-1.0-6.fc20.x86_64.rpm ok.txt [yg@localhost Downloads]$ ~/Shell/example/auto_extract.sh . [yg@localhost Downloads]$ ls Linux Shell Scripting Tutorial v2.0.pdf NotClassFile PDF Pic RPM TAR_GZ TXT ZIP [yg@localhost Downloads]$ tree -L 2 . . ├── NotClassFile │ └── README ├── PDF │ ├── linux_shell_scripting.pdf │ └── xx.pdf ├── Pic │ ├── 4df3c207e5ba15f649b7ee55de422d5c.jpg │ └── 590896715b45fe09c8b801132a9b367a.jpg ├── RPM │ └── zimlib-devel-1.0-6.fc20.x86_64.rpm ├── TAR_GZ │ └── dadffe.tar.gz ├── TXT │ ├── ok.txt │ ├── readme.txt │ └── test.txt └── ZIP └── goagent-goagent-v3.1.6-70-gc761281.zip
作者:YangGan
出处:http://blog.csdn.net/incyanggan
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名Yanggan(包含链接).