Обнаружение дополнительных файлов не делает выполняемый в течение периода

[117598] Ответ Луиса, приведенный выше, верен, но описание в справке Вима несколько неясно без небольшого эксперимента. Я помещаю здесь результаты этого эксперимента.

Для перемещения строки, на которой находится текущий курсор, в верхнюю часть экрана нам нужно [118056]z-[118057], набрав на клавиатуре [118058]z[118059], а затем [118060][Enter][118061].

Для перемещения строки, на которой находится текущий курсор, в середину экрана, мы используем [118062]zz[118063].

Для получения последнего поведения [118064]C-L[118065] используем [118066]z-[118067].[117605].

1
27.08.2014, 15:23
3 ответа

Самое близкое, что вы можете найти, когда последний раз выполнялся файл, - это его время , а не время модификации - выполнение не изменяет файлы. Однако невозможно определить, был ли доступ к файлу осуществлен по какой-либо другой причине. Хотя, если к файлу не было доступа в течение определенного периода времени, он не может быть выполнен.

Чтобы вывести список исполняемых файлов, к которым не обращались более 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 {} +
4
27.01.2020, 23:15

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

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`
1
27.01.2020, 23:15

При выполнении программы изменяется atime , а не ctime или mtime.

ПРИМЕЧАНИЕ: используйте stat , если вы мне не верите.

Чтобы проверить, к какому файлу был осуществлен доступ между двумя определенными датами, используйте параметр -newer в find

Пример:

find ./ -name "*.class "-newerat" 2014-03-01 "! -newerat" 2014-04-02 "

Будет отображать любой файл, заканчивающийся на .class и доступный в период с 1 марта 2014 года по 2 апреля 2014 года.

1
27.01.2020, 23:15

Теги

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