Сортировать файлы в каталоге по времени доступа, игнорируя их подмножество

У меня нет практического опыта работы с выскочкой, поэтому извиняюсь, если синтаксис выскочки неверен, но фактический сценарий bash должен быть надежным. Все, что он делает, - это цикл, проверяя, запущена ли служба teampeak (ожидая 5 секунд между проверками) перед запуском службы tsbot.

script
while true; do    
    if [[ $(pgrep teamspeak) ]]; then
        systemctl start tsbot.service
        break
    fi
    sleep 5
done
end script
3
14.02.2017, 02:35
1 ответ

Возможно, ls -rtlc делает то, что вы хотите. Он упорядочен по времени изменения индекса (ctime). Время изменения индекса изменяется всякий раз, когда что-либо в файле изменяется, за исключением времени доступа, т. е. выполнение чего-либо, кроме чтения, изменяет ctime (создание, запись, перемещение, изменение атрибутов и т. д.). Поэтому, пока вы не перемещали файлы и не меняли их разрешения, ctime все равно должно быть временем загрузки.

Если время загрузки не то, что вы хотите, то, боюсь, вам не повезло. Какой процесс обратился к файлу, не записывается. Время доступа к файлу обновляется при каждом чтении (или при некоторых чтениях в современной системе Linux, жертвуя удобством ради производительности), независимо от того, какое приложение читает файл. Нет никакой разницы между чтением с помощью программы для чтения PDF и чтением с помощью приложения для аудита или индексирования.

Если вы хотите знать, какие файлы вы просматривали в последнее время, вы можете проверить, хранит ли ваша программа просмотра файлов историю открытых файлов.Многие программы с графическим интерфейсом сохраняют список последних открытых файлов, но обычно они не обеспечивают простой программный доступ.

Если вы вызывали средство просмотра из командной строки, попробуйте историю своей оболочки. В зависимости от того, как вы настроили свою оболочку, ее история может быть полной или неполной, а также может иметь или не иметь отметку времени.

3
27.01.2020, 21:30

Теги

Похожие вопросы