源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

查找目录下同名但不同后缀名文件的shell脚本代码

  • 时间:2020-10-22 02:23 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:查找目录下同名但不同后缀名文件的shell脚本代码
因为后台录入的同事,上传文件的时候,给文件取了相同的名字,但不同的后缀名,由于文件路径非常深,大概十层左右,每一层又有几十个文件,所以人工找起来非常麻烦,所以写了个脚本,帮他们实现查找指定目录下所有子目录及文件,找出相同文件名,不同后缀的文件,然后,手动保留其中一个。
[u]复制代码[/u] 代码如下:
#!/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 通过这个脚本可以实现指定目录下同名但不同后缀名的查找,可以拓展为删除指定的文件的脚本,觉得很实用,分享一下
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部