在另一个目录中查找重复的文件

在另一个目录中查找重复的文件

我有一个名为的文件:f{number}.ext

在另一个目录中存在一个目录列表:

  • 001
  • 002
  • 003
  • ....

每个目录都包含一个文件列表:

  • f001.分机
  • f002.分机
  • ...

每个目录中的文件名都重复,但这些是不同的文件。我需要f{number}.ext在引用的目录列表中找到此文件()并获取根目录名称(例如003),或者如果找不到该文件则打印一条消息。

我可以用于fdupes这个操作吗?

答案1

你可以使用这个 Bash 脚本:

#!/bin/bash
for iNumb in '001' '002' '003' '004' '005'; do
  myFile=`ls */f${iNumb}.ext 2>&1`

  if [ "${myFile:0:2}" == "ls" ]
  then
    echo "File f${iNumb}.ext: File not found"
  else
    echo "File f${iNumb}.ext:" `dirname ${myFile}`
  fi
done
  • 处理2>&1文件未找到时 ls 的错误信息(例如ls: cannot access */f005.ext: No such file or directory)。
  • 测试if字符串是否myFile以 开头ls(那么我们遇到错误)或不以 开头(那么我们找到了一个文件)。
  • dirname返回目录。basename将返回文件名。

相关内容