指定されたパスの一部を含むファイルを見つける方法は?

指定されたパスの一部を含むファイルを見つける方法は?

私のバックアップ(Apple Time Machine)ですべてのファイルを見つけようとします.txt.csv

バックアップディレクトリの構造は次のとおりです。

/machine name/date/Macintosh HD/ 

これはその日私のコンピュータにあったすべてのファイルが含まれています。バックアップドライブには過去3年間に複数のコンピュータのコンテンツが含まれているため、これらのディレクトリはたくさんあります。

私は見つけることに興味があります私のものテキストファイルとCSVファイル(例:ファイル):

/mac1/2014-08-31-173253/マッキントッシュHD/ユーザー/私/ファイル/作業/ファイル1.txt

.txtしたがって、パスのどこかにあるすべてのファイルを見つける必要があります。/ユーザー/私

答え1

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)

答え2

おそらく次のようにすることができます:

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

これにより、すべてのファイル名の配列を取得できますが、グローバル"$@"ディレクトリビットが必要です。これが/mac[123]/まさにそのディレクトリの名前を推測するだけです。

関連情報