linux 下用 shell 给文件夹内的文件归类
来源:互联网 发布:淘宝店名测试打分 编辑:程序博客网 时间:2024/05/21 22:49
如下图所示,现在需要将几百个文件夹(此处只列出两个举例子)内的图片按命名规范重新分类,用 bash shell 处理这个问题就比较方便。
#!/bin/bashProjPath=`cd $(dirname "$0");pwd`dirPath="$ProjPath/cultivar_process"#自定义分类文件夹名FileName=$1mkdir $FileName"_t"mkdir $FileName"_t_b"mkdir $FileNamemkdir $FileName"_b"t_filePath="$ProjPath/$FileName"_t""t_b_filePath="$ProjPath/$FileName"_t_b""filePath="$ProjPath/$FileName"b_filePath="$ProjPath/$FileName"_b""#所有存放叶子的文件夹dirList=`ls $dirPath`#遍历存有叶片的文件夹for DirName in $dirListdo cd $dirPath/$DirName file_1_1_t_list=`ls *_[1-3]_[1-3]_t.tif` for file_1_1 in $file_1_1_t_list do cd $t_filePath if [ ! -d "$DirName" ] then mkdir $DirName fi cp $dirPath/$DirName/$file_1_1 $t_filePath/$DirName done cd $dirPath/$DirName file_1_1_t_b_list=`ls *_[1-3]_[1-3]_t_b.tif` for file_2_2 in $file_1_1_t_b_list do cd $t_b_filePath if [ ! -d "$DirName" ] then mkdir $DirName fi cp $dirPath/$DirName/$file_2_2 $t_b_filePath/$DirName done cd $dirPath/$DirName file_1_1_list=`ls *_[1-3]_[1-3].tif` for file_3_3 in $file_1_1_list do cd $filePath if [ ! -d "$DirName" ] then mkdir $DirName fi cp $dirPath/$DirName/$file_3_3 $filePath/$DirName done cd $dirPath/$DirName file_1_1_b_list=`ls *_[1-3]_[1-3]_b.tif` for file_4_4 in $file_1_1_b_list do cd $b_filePath if [ ! -d "$DirName" ] then mkdir $DirName fi cp $dirPath/$DirName/$file_4_4 $b_filePath/$DirName donedone
这样便实现了对文件夹下图片的不同命名规则的分类。选取以上程序的部分片段进行分析如下:
ProjPath=`cd $(dirname "$0");pwd`
表示当前脚本的相对路径,这样写便于程序的移植与通用,避免路径写死。
FileName=$1
$1表示脚本接受的参数(第一个参数),$0表示当前文件。
dirList=`ls $dirPath`
此处表示列举出指定目录下的所有文件。
file_1_1_t_list=`ls *_[1-3]_[1-3]_t.tif`
此处表示列举出指定文件名格式的文件(用正则表示)。
if [ ! -d "$DirName" ]then mkdir $DirNamefi
此处判断是否存在指定文件夹,若不存在,则创建。
2 0
- linux 下用 shell 给文件夹内的文件归类
- Java实现将指定文件夹内的指定类型的文件归类
- 批量执行linux文件夹下的各个shell文件
- 批量执行linux文件夹下的各个shell文件
- 每天学点linux--(用shell实现将一个文件夹下面的所有文件拷贝到另一个文件夹下/shell下如何重命名一个文件)
- linux - shell 将7天内更新的文件复制到另外一个文件夹
- linux shell 统计文件夹下的目录
- Linux Shell获取文件夹下的文件名
- 把指定文件夹下的照片,按日期归类
- Linux学习5之shell显示当前目录下所有的文件和文件夹
- linux下遍历文件夹下的文件
- linux shell 文件-文件夹列表
- Linux:centos释放缓存,查看磁盘空间大小,xxx文件夹, 查看文件夹大小,查看剩余内存,查看xxx软件位置,统计某文件夹,统计某文件夹下目录数量,查看文件夹大小,给文件夹下所有的文件赋值权限
- Ubuntu12.04下删除文件夹内所有的.svn文件
- ubuntu下删除文件夹内所有的.svn文件
- linux递归地将文件夹下所有C文件移动到一个文件夹内
- linux下移动文件夹内所有文件到另外一个文件夹下
- linux命令:将文件夹内的绝对路径写入txt文件
- 8月初登泰山注意事项,个人小结
- JVM内存模型
- 使用Jsoup消除不受信任的HTML (来防止XSS攻击)
- 从二叉树到完全二叉树
- 练习2-1 编写一个程序以确定分别由signed及unsigend限定的char short int 与long类型变量的取值范围
- linux 下用 shell 给文件夹内的文件归类
- 判定一段中文字符串是否是数字
- dyld: Library not loaded: @rpath
- 腾讯优测干货分| 深入揭秘HTTPS安全问题&连接建立全过程
- 一分钟教会你解析任何复杂Json字符串:Android Stuoid GsonFormat插件+Gson.jar
- Codeforces 677 B.Coat of Anticubism【水题】
- Android如何实现Md5PasswordEncoder的encodePassword加密方法(附iOS实现方式)
- 消息推送之Socket----长连接和心跳
- JavaScript中的方法重载