Created Thursday 03 April 2014
#/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(包含链接).
从小Shell做起系列(一):做个文件自动分类吧,布布扣,bubuko.com
原文:http://blog.csdn.net/incyanggan/article/details/22909473