Linux находит файлы по дате изменения
Обновлено: 21.11.2024
Если вы работаете с тысячами файлов в день и хотите найти список файлов, которые были недавно изменены в каталоге для определенных целей, это можно легко сделать с помощью команды find.
Команда find используется для поиска или обнаружения файлов на основе различных критериев, таких как отметка времени, тип файла и права доступа к файлу в Linux.
Пожалуйста, обратитесь к нашей предыдущей статье о том, как найти размер каталога в Linux.
В эту статью мы включили 13 примеров поиска файлов на основе метки времени, и я надеюсь, что эта статья удовлетворит ваши потребности.
В Linux файл содержит три метки времени, которые обновляются при доступе к файлу, его изменении или замене.
Типы временных меток файлов:
- atime: время доступа или время последнего доступа
- mtime: время изменения или время последнего изменения
- ctime: время изменения или время последнего изменения
Прочитайте объяснение ниже, чтобы лучше понять отметку времени.
- atime/amin: время последнего доступа к файлу какой-либо командой или приложением.
- mtime/mmin: время последнего изменения содержимого файла.
- ctime/cmin: время последнего изменения атрибута файла.
Как проверить все временные метки файла?
Это легко увидеть с помощью команды «stat», которая отображает все три временных метки файла.
Общий синтаксис следующий:
С mtime можно использовать числовые аргументы. Используйте команду «-mtime n», чтобы получить список файлов, которые последний раз изменялись «n» часов назад.
См. приведенный ниже формат для лучшего понимания.
- -mtime +10: будут найдены все файлы, которые были изменены 10 дней назад.
- -mtime -10: будут найдены все файлы, измененные за последние 10 дней.
- -mtime 10: используйте этот формат, чтобы найти все файлы, которые были изменены ТОЧНО 10 дней назад.
1) Сортировка файлов и папок по времени преобразования
Это можно сделать с помощью команды ls с некоторыми параметрами, как показано ниже, которая сортирует файлы и папки в обратном порядке в зависимости от времени преобразования.
2) Сортировка только папок по времени конверсии
Используйте следующий формат, чтобы отсортировать только папки в обратном порядке по времени преобразования.
3) Как найти только те файлы, которые были изменены 120 дней назад
Приведенная ниже команда find покажет список файлов, которые были изменены 120 дней назад.
4) Как найти только те файлы, которые были изменены за последние 15 дней
Приведенная ниже команда find покажет список файлов, которые были изменены за последние 15 дней:
5) Как найти только те файлы, которые были изменены ровно 10 дней назад
Приведенная ниже команда find покажет вам список файлов, которые были изменены ровно 10 дней назад:
6) Как найти только те файлы, которые были изменены в течение последних 30 минут
Приведенная ниже команда find покажет список файлов, которые были изменены за последние 30 минут.
7) Как найти только те папки, которые были изменены за последние 5 дней
Эта команда отображает только папки, измененные за последние 5 дней.
8) Как найти файлы и папки, которые были изменены за последние 15 дней
Эта команда отображает список файлов и папок, измененных за последние 15 дней:
9) Как найти измененные файлы и папки, начиная с заданной даты и заканчивая самой последней датой
Эта команда позволяет найти список файлов и папок, которые были изменены, начиная с указанной даты до самой последней даты:
10) Как найти все файлы и папки, измененные за последние 24 часа
Кроме того, вы можете использовать простой для понимания формат, подобный приведенному ниже, для поиска файлов и папок, которые изменились за последние 24 часа.
11) Как найти список файлов с расширением «sh», к которым обращались за последние 30 дней
Эта команда поможет вам найти список файлов с расширением «sh», к которым обращались за последние 30 дней.
12) Как найти файлы, которые были изменены в течение определенного периода времени
Приведенная ниже команда показывает список файлов, которые были изменены за последние 20 минут.
13) Как найти список файлов, созданных сегодня
Эта команда позволяет найти список файлов, созданных сегодня:
Заключительные примечания
В этой статье объясняется, как найти недавно измененные файлы и папки в Linux.
Как найти файлы, которые были изменены с определенной даты (с указанием точного часа) до другой заданной даты (с указанием точного часа) в заданном каталоге, например, из /.
Я думаю, этого можно добиться с помощью find .
Кто-нибудь знает, как это сделать¿? Заранее спасибо
3 ответа 3
иди сюда:
найти . -newermt "01.01.2013 00:00:00" ! -newermt "2013-01-02 00:00:00"
m Время модификации ссылки на файл
ссылка t интерпретируется непосредственно как время
Хороший снимок. Позволил мне узнать, какое приложение создало этот большой каталог '~/.m2', заглянув в /usr/bin на основе даты и времени! Это гуакамоле/freerdp.
Вместо ! , вы можете использовать -not для повышения удобочитаемости и совместимости со всеми типами оболочек (bash, zsh и т. д.).
Использование -not вместо ! может избежать проблем с некоторыми оболочками, но он не совместим с POSIX, поэтому не будет работать во всех версиях Unix.
Основная структура команды поиска выглядит следующим образом:
find содержит операторы + и -, которые работают с параметрами mtime , atime и ctime:
Вы можете прочитать inode с помощью -*time и определить интервалы времени с помощью + и/или -
(1) Указание ограничений времени модификации для детализации точного часа, по-видимому, является основным направлением этого вопроса. Этот ответ даже не упоминает об этом. (2) Этот ответ копирует большую часть предыдущего ответа и добавляет очень мало пояснений.
Я думаю, вы можете сделать это с помощью ниже:
Для основано на часах и минутах. Вам нужно найти числа минут -- от и до, которые будут использоваться ниже: find ./* -mmin -540 -mmin +20 -ls
Вы можете редактировать свои onw-сообщения, добавляя в них актуальную информацию. Сохраняйте комментарии для других несущественных вещей.
Не тот ответ, который вы ищете? Просмотрите другие вопросы с тегами bash, найдите или задайте свой вопрос.
Связано
Связанные
Горячие вопросы о сети
дизайн сайта / логотип © 2022 Stack Exchange Inc; вклады пользователей под лицензией cc by-sa. версия 2022.3.24.41762
Linux является зарегистрированным товарным знаком Линуса Торвальдса. UNIX является зарегистрированным товарным знаком The Open Group.
Этот сайт никоим образом не связан с Линусом Торвальдсом или The Open Group.
В этой статье объясняется, как найти все файлы в каталоге, которые были изменены за последние N минут или дней, или файлы с датой изменения старше N минут или дней, с примерами. Это делается с помощью команды find.
Чтобы найти файлы, которые были изменены (со временем изменения данных файлов старше) за последние N дней из каталога и подкаталогов, используйте:
- find — это инструмент командной строки Unix для поиска файлов (и не только)
- /directory/path/ — это путь к каталогу, в котором следует искать файлы, которые были изменены. Замените его на путь к каталогу, в котором вы хотите искать файлы, которые были изменены за последние N дней.
- -mtime -N используется для сопоставления файлов, данные которых были изменены за последние N дней. Замените N числом (целым)
- -ls перечисляет результирующие файлы (файлы, которые были изменены за последние N дней) в формате ls -dils на стандартный вывод. Вы можете пропустить это, но с его помощью вы получите больше информации, например размер файла, права доступа, дату изменения и т. д.
- Найти все файлы, измененные за последний день (24 часа; между сегодняшним днем и днем назад) в каталоге и подкаталогах:
-mtime -1 совпадает с -mtime 0 .
Но что, если вам нужно найти файлы с датой модификации старше N , например старше 30 дней? В этом случае вам нужно использовать +N вместо -N , например:
- Найти все файлы с датой изменения старше 7 дней:
- Найти все файлы, измененные более 48 часов назад (не менее 2 дней назад):
- Найти все файлы, измененные от 24 до 48 часов назад (от 1 до 2 дней назад):
Почему 1 день назад, а +1 старше 2 дней/48 часов назад? Это связано с тем, что, согласно man find , любые дробные части игнорируются, поэтому, если файл был последний раз изменен 1 день и 23 часа назад, -mtime +1 не будет соответствовать ему, обрабатывая его так, как если бы файл был последний раз изменен 1 день, 0 часов, 0 минут и 0 секунд назад; см. это объяснение, почему это так
В таком случае, как вы можете изменить все файлы по крайней мере 1 день назад? Используйте +0 :
Использование минут вместо дней
Чтобы найти файлы, которые были изменены N минут назад или с датой изменения старше N, просто замените -mtime на -mmin .
Поэтому, если вы хотите найти файлы, которые были изменены (со временем изменения данных файлов старше) за последние N минут из каталога и подкаталогов, используйте:
Иногда вам может потребоваться проверить подробную информацию о файле (отметку времени), например дату последнего изменения. Это может пригодиться, если вы хотите проверить, когда файл последний раз редактировался. Кроме того, это гарантирует, что у вас будет последняя версия файла.
В этой статье вы узнаете 4 способа получить дату последнего изменения файла в Linux.
1. Использование команды статистики
Команда ls -l вполне удобна для предоставления базовой информации о файле, такой как владелец файла и права доступа, размер файла и дата создания. Команда stat возвращает подробные сведения об атрибутах файла, например, время последнего обращения к файлу и его изменения.
Синтаксис довольно прост. stat следует имя файла или полный путь к файлу.
статистика 'file1.txt'
Из приведенного выше вывода мы ясно видим, когда к файлу последний раз обращались (Дата доступа), Дата изменения, Дата изменения и другие параметры.
Если вы хотите просмотреть только дату изменения и опустить всю остальную информацию, выполните следующую команду:
Используйте команду stat только для проверки даты изменения
Опция -c используется для возврата даты в пользовательском формате, а флаг '%y' отображает время последнего изменения. Для каталогов синтаксис остается прежним. Просто замените имя файла именем каталога.
2. Использование команды даты
Команда date в своем базовом синтаксисе отображает текущую дату. Однако при использовании с параметром -r можно отобразить дату последнего изменения файла, как показано ниже.
команда date для отображения даты последнего изменения
3. Использование команды ls -l
Команда ls -l обычно используется для длинных списков — отображения дополнительной информации о файле, такой как владелец файла и права доступа, размер и дата создания. Чтобы перечислить и отобразить время последнего изменения, используйте параметр lt, как показано.
проверить последний измененный файл с помощью ls -lt
Но сначала вам нужно установить его с помощью команды:
В Ubuntu / Debian / Mint выполните команду:
Чтобы проверить, когда последний раз изменялся файл на веб-сервере, используйте следующий синтаксис:
Вывод
Заключение
Теги Заголовок терминала; $list = get_page_by_title('related', 'OBJECT', 'wp_show_posts'); wpsp_display($list->ID, 'tax_term="' . $cat_slug . '"' );*/ ?>
1 мысль о «Как получить дату последнего изменения файла в Linux». добавить один
Я предпочитаю использовать 'ls' всем остальным, потому что ls позволяет точно контролировать отображение даты и времени. Я считаю, что статистика дает только выбор между секундами с начала эпохи и удобочитаемым форматом, без контроля над удобочитаемым форматом.
Для ls соответствующим параметром является '--time-style', и его спецификаторы формата довольно просты, используя те же спецификаторы, что и /bin/date. См. «man date» для всех доступных спецификаторов. Мой личный фаворит --time-style="+%Y-%m-%d %H:%M:%S". Я использую этот псевдоним для повседневных нужд ls.
псевдоним l="/bin/ls --time-style=\"+%Y-%m-%d %H:%M:%S\" --group-directories-first -lLFAGv" р>
Читайте также: