shell工具---001

#!/bin/bash

dir="./*"
for file in $dir; do
	if [ -f "$file" ]; then #当文件名有空格时,不加“”会导致too many arguments异常
		echo $file;
	else
		echo "$file"--directory;
		# cd "$file"
		cp "$file"/*.mp4 ./
		rm -rf "$file"

	fi;
done

这个脚本是为了把当前目录下子目录里的所有mp4,都copy到当前目录,这样看起来更方便
目录结构如下:
# BigYellow @ YSMdeMBP in ~/Movies/myDir [11:33:24]
$ tree
.
├── BY
│   ├── aa.avi
│   ├── bb.jpg
│   ├── by.mp4
│   └── cc.txt
├── LOOKMOUNTAIN
│   ├── aa2.avi
│   ├── bb2.jpg
│   ├── by2.mp4
│   └── cc3.txt
├── NEWWESTSTRADA
│   ├── aa1.avi
│   ├── bb1.jpg
│   ├── by1.mp4
│   └── cc1.txt
├── SAKULA
│   ├── aa.avi
│   ├── bb.jpg
│   ├── by.mp4
│   └── cc.txt
└── my_copy.sh
执行完my_copy.sh之后,子目录下的mp4文件都进入当前目录,并且删除子目录。
脚本里的copy可以换成mv,这样应该更合理,但是笔者总觉得copy成功之后再删除更保险一些,即使出错,也不用再把已经mv出来的文件mv回去

你可能感兴趣的:(日记,shell)