在另一個目錄中尋找重複文件

在另一個目錄中尋找重複文件

我有一個名為:f{number}.ext

在另一個目錄中存在一個目錄列表:

  • 001
  • 002
  • 003
  • ....

每個目錄都包含一個檔案列表:

  • f001.ext
  • f002.ext

每個目錄中的檔案名稱都會重複,但這些是不同的檔案。我需要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以 an 開頭ls(然後我們遇到錯誤)或不是(然後我們找到一個檔案)。
  • dirname返回目錄。basename將返回檔案名稱。

相關內容