私のバックアップ(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]/
まさにそのディレクトリの名前を推測するだけです。