Bash

如何查找具有部分指定路徑的文件?

  • December 22, 2014

我正在嘗試在我的備份(Apple 的時間機器)中找到我的所有文件.txt.csv

備份目錄的結構是這樣的:

/machine name/date/Macintosh HD/ 

以上包含那天我機器上的所有文件。我有很多這樣的目錄,因為備份驅動器包含來自多台機器的東西,過去 3 年。

我感興趣的是找到我的文本和 CSV 文件,例如文件:

/mac1/2014-08-31-173253/Macintosh HD/使用者//Documents/work/file1.txt

所以我需要找到路徑**/Users/me**.txt上某處的所有文件

您可以使用find,前提是它可用:

$ find "/mac1/2014-08-31-173253/Macintosh HD" -wholename "*/Users/me/*.txt" -or -wholename "*/Users/me/*.csv"

這將搜尋在其路徑中/mac1/2014-08-31-173253/Macintosh HD包含該模式的文件。*/Users/me/*.(txt|csv)

也許你可以這樣做:

set --
for d in /mac[123]/201[1-4]*'/Macintosh HD/Users/me/Documents/work/'
do  for g in .txt .csv
do  set -- "$d"*"$g"
   [ -e "$1" ] || shift
done

這樣,您將獲得所有文件名的數組"$@"- 但您需要 glob 目錄位 - 這就是它的/mac[123]/用途,我只是猜測這些目錄的名稱。

引用自:https://unix.stackexchange.com/questions/175436