shell脚本实现查找目录下同名但不同后缀名的文件
2012-03-09 10:14
906 查看
因为后台录入的同事,上传文件的时候,给文件取了相同的名字,但不同的后缀名,由于文件路径非常深,大概十层左右,每一层又有几十个文件,所以人工找起来非常麻烦,所以写了个脚本,帮他们实现查找指定目录下所有子目录及文件,找出相同文件名,不同后缀的文件,然后,手动保留其中一个。
模拟测试:
linux-8hij:/tmp/test # ll
total 4
-rw-r--r-- 1 root root 0 Mar 9 02:04 1.png
-rw-r--r-- 1 root root 0 Mar 9 02:04 1.txt
drwxr-xr-x 2 root root 4096 Mar 9 02:05 test1
linux-8hij:/tmp/test/test1 # ll
total 0
-rw-r--r-- 1 root root 0 Mar 9 02:05 11.jpg
-rw-r--r-- 1 root root 0 Mar 9 02:05 11.log
-rw-r--r-- 1 root root 0 Mar 9 02:05 2.log
运行结果:
linux-8hij:/tmp # ./find_name.sh /tmp
The directory /tmp including same name file:
The directory /tmp/.ICE-unix including same name file:
The directory /tmp/.X11-unix including same name file:
The directory /tmp/gconfd-root including same name file:
The directory /tmp/gconfd-root/lock including same name file:
The directory /tmp/gpg-PIEU09 including same name file:
The directory /tmp/test including same name file:
/tmp/test/1.txt
/tmp/test/1.png
The directory /tmp/test/test1 including same name file:
/tmp/test/test1/11.jpg
/tmp/test/test1/11.log
查看记录:
linux-8hij:/tmp # cat /tmp/samefile.txt
/tmp/test/1.txt /tmp/test/1.png
/tmp/test/test1/11.jpg /tmp/test/test1/11.log
通过这个脚本可以实现指定目录下同名但不同后缀名的查找,可以拓展为删除指定的文件的脚本,觉得很实用,分享一下
本文出自 “我就是我非此非彼” 博客,请务必保留此出处http://wukui127.blog.51cto.com/2866802/801083
#!/bin/bash #判断一下脚本参数的问题 if [ $# -ne 1 ];then echo "Usage find_same.sh direcroty" exit fi find $1 -type d > /tmp/dir.txt #将所有需要查询的目录本身和子目录的名字存储在一个临时文件里 #对每个目录进行比较查询 while read dir do find $dir -maxdepth 1 -type f > /tmp/file.txt #将当前目录下的所有文件存储在临时文件里 awk -F '/' '{print $NF}' /tmp/file.txt | awk -F '[.]' '{print $1}'| sort | uniq -d > /tmp/filename.txt #把文件名字取出来,有同样名字的就把名字放到/tmp/filename.txt里 line=`wc -l /tmp/filename.txt | awk '{print $1}'` #判断一下该文件里一共有多少行,每一行就是一个重名的文件名 #输出 echo "The directory $dir including same name file: " if [ $line -ge 1 ] ; then while read name do filename=`grep $name /tmp/file.txt` echo "$filename" echo $filename >> /tmp/samefile.txt #所有的记录存放在这个文件里 done < /tmp/filename.txt fi done < /tmp/dir.txt
模拟测试:
linux-8hij:/tmp/test # ll
total 4
-rw-r--r-- 1 root root 0 Mar 9 02:04 1.png
-rw-r--r-- 1 root root 0 Mar 9 02:04 1.txt
drwxr-xr-x 2 root root 4096 Mar 9 02:05 test1
linux-8hij:/tmp/test/test1 # ll
total 0
-rw-r--r-- 1 root root 0 Mar 9 02:05 11.jpg
-rw-r--r-- 1 root root 0 Mar 9 02:05 11.log
-rw-r--r-- 1 root root 0 Mar 9 02:05 2.log
运行结果:
linux-8hij:/tmp # ./find_name.sh /tmp
The directory /tmp including same name file:
The directory /tmp/.ICE-unix including same name file:
The directory /tmp/.X11-unix including same name file:
The directory /tmp/gconfd-root including same name file:
The directory /tmp/gconfd-root/lock including same name file:
The directory /tmp/gpg-PIEU09 including same name file:
The directory /tmp/test including same name file:
/tmp/test/1.txt
/tmp/test/1.png
The directory /tmp/test/test1 including same name file:
/tmp/test/test1/11.jpg
/tmp/test/test1/11.log
查看记录:
linux-8hij:/tmp # cat /tmp/samefile.txt
/tmp/test/1.txt /tmp/test/1.png
/tmp/test/test1/11.jpg /tmp/test/test1/11.log
通过这个脚本可以实现指定目录下同名但不同后缀名的查找,可以拓展为删除指定的文件的脚本,觉得很实用,分享一下
本文出自 “我就是我非此非彼” 博客,请务必保留此出处http://wukui127.blog.51cto.com/2866802/801083
相关文章推荐
- 查找目录下同名但不同后缀名文件的shell脚本代码
- 查找目录下同名但不同后缀名文件的shell脚本代码
- shell脚本——不同目录下同名文件内容比较
- shell脚本,在不同目录下新建同名文件,并添加内容
- shell脚本查找指定目录下所有子目录中的同名文件
- shell脚本查找指定目录下所有子目录中的同名文件
- shell 脚本实现的遍历目录修改子目录及其文件权限
- Python脚本实现查找指定目录下包含指定关键字的文件
- Shell 实现找出两个目录下的同名文件方法
- 在指定目录查找指定后缀文件的shell脚本代码
- 小shell脚本---查找目录下面包含string的文件
- shell脚本 for循环实现文件和目录遍历
- shell脚本实现查找文件夹下重复的文件,并提供删除功能
- shell 脚本实现统计文件夹下目录及文件个数
- shell脚本之对比不同目录的下的文件
- shell脚本实现查找文件夹下重复的文件,并提供删除功能
- Python实现查找指定目录下包括某关键字的所有文件脚本
- shell小脚本实现上传目录中的所有文件到服务器
- 在指定目录查找指定后缀文件的shell脚本代码
- linux、shell脚本实例一“查找一个文件或者目录 找到了提示 没找到则输出未找到”