首页 > 其他 > 详细

从小Shell做起系列(一):做个文件自动分类吧

时间:2014-04-04 09:20:10      阅读:603      评论:0      收藏:0      [点我收藏+]

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(包含链接).

从小Shell做起系列(一):做个文件自动分类吧,布布扣,bubuko.com

从小Shell做起系列(一):做个文件自动分类吧

原文:http://blog.csdn.net/incyanggan/article/details/22909473

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!