Команда оболочки OS X (Unix): возможно ли получить последнюю открытую дату файла?

6439
Juri

когда вы используете следующую команду

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

вы получите все файлы, дата модификации которых превышает 90 дней. Однако, если вы откроете свойства файла в Finder на OS X, например, также будет дата «Последнее открытие». Есть ли возможность получить все файлы с последней открытой датой, превышающей некоторый порог, как в примере выше? К сожалению, нет "-otime" :)

Также на Automator у вас нет фильтра для последнего открытого времени, а только для измененного времени и созданного времени ...

большое спасибо

3
Спасибо за информацию, действительно интересную и полезную. Но время, которое вы упомянули изначально, действительно работает для меня идеально. Спасибо :) Juri 15 лет назад 0
Хорошо! (Пожалуйста, рассмотрите возможность удаления старых комментариев ниже; вы никогда не узнаете, не запутают ли они кого-нибудь в будущем. Спасибо!) Arjan 15 лет назад 0

1 ответ на вопрос

6
Arjan

Параметр atimeопределяет время последнего доступа . Кажется, ты этого хочешь? Но это, очевидно, не то же самое, что дата, которую вы используете в Finder.

Смотрите ls -luдату atimeиспользования.

Mac OS X также использует «метаданные HFS» (или: «Информация об искателе») для хранения дат. Например: Unix не хранит даты создания файлов. cdateВ Unix действительно дата изменения ( в том числе, например, изменения прав доступа, поэтому cdateполучает новое значение в нескольких различных случаях, чем дата модификации для mdate). Используя эти метаданные, Mac OS X может сохранять детали.

Есть несколько вариантов отображения (некоторые из) этих дат, например:

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

Используя mdfindможно искать конкретные метаданные. Но он использует индекс Spotlight, поэтому я думаю, что он может не найти все.

Как найти файлы, которые исключены из резервных копий Time Machine:

sudo mdfind "com_apple_backup_excludeItem = 'com.apple.backupd'"

Для поиска по дате создания используйте kMDItemFSCreationDate. Для последней открытой даты: kMDItemLastUsedDate. Но обратите внимание, что файлы, созданные с помощью определенных команд терминала, могут не иметь этого набора метаданных:

echo "Hello world"> ~ / Рабочий стол / hello-world.txt коснитесь ~ / рабочий стол / не будет найден.txt mdfind -onlyin ~ / Рабочий стол 'kMDItemFSCreationDate> = $ time.this_week'

После открытия «will-not-be-found.txt» в «Редактировании текста», вы все равно увидите файл.

Смотрите также Синтаксис запроса Spotlight .

Вот и все. Извините, я должен был посмотреть справочную страницу раньше. Большое спасибо в любом случае :) Juri 15 лет назад 0
ах хорошо ... но на самом деле это не соответствует времени "последнего открытия" в поиске. Но может быть полезным, хотя Juri 15 лет назад 0