[117598] Ответ Луиса, приведенный выше, верен, но описание в справке Вима несколько неясно без небольшого эксперимента. Я помещаю здесь результаты этого эксперимента.
Для перемещения строки, на которой находится текущий курсор, в верхнюю часть экрана нам нужно [118056]z-
Для получения последнего поведения [118064]C-L[118065] используем [118066]z-[118067].[117605].
Самое близкое, что вы можете найти, когда последний раз выполнялся файл, - это его время
, а не время модификации - выполнение не изменяет файлы. Однако невозможно определить, был ли доступ к файлу осуществлен по какой-либо другой причине. Хотя, если к файлу не было доступа в течение определенного периода времени, он не может быть выполнен.
Чтобы вывести список исполняемых файлов, к которым не обращались более 24 часов, вы можете сделать:
find workspace_dir -type f -perms /111 -atime +1
Чтобы удалить их ( убедитесь, что вы удаляете только те, которые хотите сначала ):
find workspace_dir -type f -perms /111 -atime +1 -exec rm {} +
Обратите внимание, что с SSD обычно монтируют с опцией noatime
, чтобы уменьшить количество операций записи на диск и увеличить срок службы. Если файловая система смонтирована с опцией noatime
, это не сработает.
Если это файлы Java .class
, они не будут исполняемыми напрямую. Для поиска / удаления файлов .class
, к которым осуществлялся доступ более 24 часов назад:
find workspace_dir -type f -name '*.class' -atime +1
find workspace_dir -type f -name '*.class' -atime +1 -exec rm {} +
Вы можете использовать следующую команду, чтобы определить, какие файлы были изменены в последнее время.
ls -halt *.class
В указанном выше порядке первый файл в выводе означает, что он был недавно отредактирован.
Если вы хотите выводить в обратном порядке,
ls -haltr *.class
В приведенном выше выводе первый файл в выводе означает, что он был отредактирован давно.
После определения детерминированного периода вы можете выполнить rm
для этих файлов.
Теперь, предполагая, что ваш определенный период составляет 1 день, вы можете выполнить следующую команду.
find /path/to/files* -atime +1 -exec rm {} \;
Другой способ удаления файлов:
rm -f `find *.class -type f -atime +1`
Всегда лучше указывать полный путь к файлу.
Чтобы быть уверенным, перед запуском команды я бы выполнил приведенную ниже команду, чтобы выяснить, все ли файлы не были изменены за последний день.
echo `find *.class -type f -atime +1`
При выполнении программы изменяется atime , а не ctime или mtime.
ПРИМЕЧАНИЕ: используйте stat
, если вы мне не верите.
Чтобы проверить, к какому файлу был осуществлен доступ между двумя определенными датами, используйте параметр -newer в find
Пример:
find ./ -name "*.class "-newerat" 2014-03-01 "! -newerat" 2014-04-02
"
Будет отображать любой файл, заканчивающийся на .class и доступный в период с 1 марта 2014 года по 2 апреля 2014 года.