web-dev-qa-db-ja.com

OS X(Unix)シェルコマンド:ファイルの最終オープン日を取得できますか?

次のコマンドを使用する場合

find /Users/someUser/someFolder/* -type f -mtime +90

変更日が90日を超えるすべてのファイルを取得します。ただし、たとえばOS XのFinderでファイルのプロパティを開くと、「最終オープン」の日付も表示されます。上記の例のように、最後に開いた日付がしきい値よりも大きいすべてのファイルを取得する可能性はありますか?悲しいことに、「-otime」はありません:)

また、Automatorには、最後のオープン時間のフィルターはありませんが、変更された時間と作成された時間のフィルターがあります...

どうもありがとう

3
Juri

パラメータatimeは、最後のアクセス時間を定義します。 あなたはそれが欲しいようですか? しかし、それは明らかにFinderで使用する日付と同じではありません。

見る ls -luatimeが使用する日付。

Mac OS Xは、「HFSメタデータ」(または「ファインダー情報」)を使用して日付を保存します。例:Unixはファイルの作成日を保存しません。 Unixのcdateは実際には変更日です(たとえば、アクセス許可の変更を含むため、cdatemdateの変更日とは少し異なる機会に新しい値を取得します)。このメタデータを使用して、Mac OSXは引き続き詳細を保持できます。

これらの日付(の一部)を表示するには、次のようないくつかのオプションがあります。

stat file.txt 
 GetFileInfo file.txt 
 mdls file.txt

mdfindを使用すると、特定のメタデータを検索できます。ただし、 Spotlightインデックス を使用しているため、すべてが見つからない可能性があります。

TimeMachineバックアップから除外されているファイルを見つけたい:

Sudo mdfind "com_Apple_backup_excludeItem = 'com.Apple.backupd'"

作成日に基づいて検索するには、kMDItemFSCreationDateを使用します。最終オープン日:kMDItemLastUsedDate。ただし、特定のターミナルコマンドを使用して作成されたファイルには、そのメタデータセットがない場合があることに注意してください。

echo "Hello world">〜/ Desktop/hello-world.txt 
 touch〜/Desktop/will-not-be-found.txt 
 mdfind -onlyin〜/Desktop'kMDItemFSCreationDate> = $ time.this_week '

テキストエディットで「will-not-be-found.txt」を開くと、結局ファイルが表示されます。

Spotlightクエリ構文 も参照してください。

6
Arjan