найти файлы старше даты linux

Поиск в Linux с помощью команды find

Утилита find представляет универсальный и функциональный способ для поиска в Linux. Данная статья является шпаргалкой с описанием и примерами ее использования.

Общий синтаксис

путь к корневому каталогу, откуда начинать поиск. Например, find /home/user — искать в соответствующем каталоге. Для текущего каталога нужно использовать точку «.».

набор правил, по которым выполнять поиск.

* по умолчанию, поиск рекурсивный. Для поиска в конкретном каталоге можно использовать опцию maxdepth.

Описание опций

Тип объекта поиска. Возможные варианты:

Также доступны логические операторы:

Полный набор актуальных опций можно получить командой man find.

Примеры использования find

Поиск файла по имени

1. Простой поиск по имени:

* в данном примере будет выполнен поиск файла с именем file.txt по всей файловой системе, начинающейся с корня /.

2. Поиск файла по части имени:

* данной командой будет выполнен поиск всех папок или файлов в корневой директории /, заканчивающихся на .tmp

3. Несколько условий.

а) Логическое И. Например, файлы, которые начинаются на sess_ и заканчиваются на cd:

б) Логическое ИЛИ. Например, файлы, которые начинаются на sess_ или заканчиваются на cd:

в) Более компактный вид имеют регулярные выражения, например:

* где в первом поиске применяется выражение, аналогичное примеру а), а во втором — б).

* в данном примере мы воспользовались логическим оператором !.

Поиск по дате

1. Поиск файлов, которые менялись определенное количество дней назад:

* данная команда найдет файлы, которые менялись более 60 дней назад.

* покажет все файлы, которые менялись, начиная с 02.11.2019 00:00.

* найдет все файлы, которые менялись в промежутке между 31.10.2019 и 01.11.2019 (включительно).

* все файлы, к которым обращались с 08.10.2019.

* все файлы, к которым обращались в октябре.

* все файлы, созданные с 07 сентября 2019 года.

* файлы, созданные с 07.09.2019 00:00:00 по 09.09.2019 07:50

По типу

Искать в текущей директории и всех ее подпапках только файлы:

* f — искать только файлы.

Поиск по правам доступа

1. Ищем все справами на чтение и запись:

2. Находим файлы, доступ к которым имеет только владелец:

Поиск файла по содержимому

* в данном примере выполнен рекурсивный поиск всех файлов в директории / и выведен список тех, в которых содержится строка content.

С сортировкой по дате модификации

* команда найдет все файлы в каталоге /data, добавит к имени дату модификации и отсортирует данные по имени. В итоге получаем, что файлы будут идти в порядке их изменения.

Лимит на количество выводимых результатов

Самый распространенный пример — вывести один файл, который последний раз был модифицирован. Берем пример с сортировкой и добавляем следующее:

Поиск с действием (exec)

1. Найти только файлы, которые начинаются на sess_ и удалить их:

* -print использовать не обязательно, но он покажет все, что будет удаляться, поэтому данную опцию удобно использовать, когда команда выполняется вручную.

2. Переименовать найденные файлы:

3. Вывести на экран количество найденных файлов и папок, которые заканчиваются на .tmp:

* в данном примере мы ищем все каталоги (type d) в директории /home/user и ставим для них права 2700.

5. Передать найденные файлы конвееру (pipe):

* в данном примере мы использовали find для поиска строки test в файлах, которые находятся в каталоге /etc, и название которых заканчивается на .conf. Для этого мы передали список найденных файлов команде grep, которая уже и выполнила поиск по содержимому данных файлов.

6. Произвести замену в файлах с помощью команды sed:

* находим все файлы в каталоге /opt/project и меняем их содержимое с test на production.

Чистка по расписанию

Команду find удобно использовать для автоматического удаления устаревших файлов.

Открываем на редактирование задания cron:

* в данном примере мы удаляем все файлы и папки из каталога /tmp, которые старше 14 дней. Задание запускается каждый день в 00:00.
* полный путь к исполняемому файлу find смотрим командой which find — в разных UNIX системах он может располагаться в разных местах.

Источник

Как найти и удалить файлы старше конкретной даты в Linux

Как найти и удалить файлы старше конкретной даты в Linux

Хочу в этой теме «Как найти и удалить файлы старше конкретной даты в Linux» рассказать как можно найти и удалить определенные файлы по дате в ОС Linux таких как Debian, Ubuntu или Redhat, Centos. На готовых примера покажу что и как нужно делать.

1. Посмотрим список всех файлов в папке с датой изменения, для этого стоит выполнить команду:

2. Чтобы узнать сегодняшнюю дату, нужно выполнить:

3. Команда что выше не вывела полную дату, можно это исправить:

4. Допустим нужно найти файлы и удалить их по определенной дате.

Если нужно найти все файлы свыше 3 дня и после чего удалить их:

Если нужно найти все файлы свыше 90 дней и после чего удалить их:

Если нужно найти все файлы свыше 365 дней и после чего удалить их:

Если нужно найти все файлы свыше 100 дней и после чего удалить их:

Удаление файлов старше N дней

-name — искать по имени файла, при использовании подстановочных образцов параметр заключается в кавычки.

-type — тип искомого: f=файл, d=каталог, l=ссылка (link).

-user — владелец: имя пользователя или UID.

-group — владелец: группа пользователя или GID.

-perm — указываются права доступа.

-size — размер: указывается в 512-байтных блоках или байтах (признак байтов — символ «c» за числом).

-atime — время последнего обращения к файлу.

-ctime — время последнего изменения владельца или прав доступа к файлу.

-mtime — время последнего изменения файла.

-newer другой_файл — искать файлы созданные позже, чем другой_файл.

-delete — удалять найденные файлы.

-print — показывает на экране найденные файлы.

-exec command <> ; — выполняет над найденным файлом указанную команду; обратите внимание на синтаксис.

-depth — начинать поиск с самых глубоких уровней вложенности, а не с корня каталога.

-prune — используется, когда вы хотите исключить из поиска определённые каталоги.

Источник

Как найти и удалить файлы старше X дней в Linux

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

Вот быстрый способ сделать это.

В этом кратком руководстве вы узнаете, как находить и удалять файлы старше X дней в Linux и Unix-подобных операционных системах.

Найти и удалить файлы старше X дней в Linux

Отказ от ответственности: вы должны быть очень осторожны при выполнении этих команд.

Эти команды не запрашивают подтверждения перед удалением файлов.

Он просто удалит файлы после нажатия клавиши ENTER. Так что будьте очень осторожны!

Сначала давайте узнаем файлы старше X дней, например 30 дней.

Чтобы сделать так, просто:

Вышеупомянутая команда найдет и отобразит старые файлы старше 30 дней. Вот,

dot (.) – Представляет текущий каталог.
-mtime – представляет время изменения файла и используется для поиска файлов старше 30 дней.
-print – отображает старые файлы

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

Например, чтобы узнать файлы, которые старше 30 дней в каталоге / home / sk / Downloads, просто запустите:

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

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

Перед выполнением этих команд будьте осторожны и дважды проверьте их.

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

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

Источник

Как найти и отсортировать файлы по дате и времени модификации в Linux

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

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

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

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

Утилиты Linux для сортировки файлов в Linux

Вот некоторые базовые утилиты командной строки Linux, которых достаточно для сортировки каталога по дате и времени:

Мы уже рассмотрели множество статей о команде Linux ls и команде sort, вы можете найти их ниже:

Мы уже рассмотрели две статьи о команде сортировки Linux, вы можете найти их ниже:

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

Некоторые способы сортировки файлов по дате и времени

Ниже приведен список команд для сортировки по дате и времени.

Список файлов в каталоге на основе времени последнего доступа, т.е. на основе времени последнего доступа к файлу, а не изменения.

Команды ниже показывают использование sort с командой find для сортировки списка файлов по дате и времени.

Чтобы узнать больше о команде find, перейдите по этой ссылке: 35 практических примеров команды find в Linux

Приведенная ниже команда сортировки сначала выполняет сортировку на основе последней цифры года, затем сортировку на основе последней цифры месяца в обратном порядке и, наконец, сортировку на основе первого поля. Здесь «1.8» означает 8-й столбец первого поля, а «n» перед ним означает числовую сортировку, а «r» указывает сортировку в обратном порядке.

Приведенная ниже команда сортирует вывод на основе первого столбца первого поля вывода, который является первой цифрой часа.

Заключение

Точно так же, обладая некоторыми знаниями о команде сортировки, вы можете отсортировать практически любой список на основе любого поля и даже любого столбца, который вам нужен. Это были некоторые приемы, которые помогут вам сортировать файлы по дате или времени. На их основе вы можете создавать свои собственные трюки. Однако, если у вас есть другой интересный трюк, вы всегда можете упомянуть об этом в своих комментариях.

Источник

linux найти файлы по дате создания

Часто у меня спрашивают: «как по SSH получить в перечень файлов созданных на определенную дату?» или «у меня есть папка с большим количеством файлов. нужно найти в этой папке файлы с определенной датой и поместить их в архив. Как это можно сделать?» Все очень просто, и сейчас мы разберем несколько часто встречающихся запросов.

В оболочках, основанных на Linux операционных системах, таких как Debian, Ubuntu, Redhat или Centos мы можем в консоле задать следующие команды и посмотреть их выполнение:

показать текущую директорию

перейти в директорию ‘/home1’

перейти в директорию уровнем выше

перейти в директорию двумя уровнями выше

перейти в домашнюю директорию

перейти в домашнюю директорию пользователя user1

перейти в директорию, в которой находились до перехода в текущую директорию

отобразить содержимое текущей директории

отобразить содержимое текущей директории с добавлением к именам символов, характеризующих тип

показать детализированное представление файлов и директорий в текущей директории

показать скрытые файлы и директории в текущей директории

показать файлы и директории содержащие в имени цифры

отображает размер и имена файлов и директорий, с сортировкой по размеру

найти файлы и директории с именем file1. Поиск начать с корня (/)

найти файл и директорию принадлежащие пользователю user1. Поиск начать с корня (/)

Найти все файлы и директории, имена которых оканчиваются на ‘. php’. Поиск начать с ‘/home/user1’

найти все файлы в ‘/usr/cgi’, созданные или изменённые в течении последних 11 дней

найти все файлы в ‘/usr/bin’, время последнего обращения к которым более 300 дней

удалить файл с именем ‘file1’ и ‘file2’

удалить директорию с именем ‘dir1’

удалить директорию с именем ‘dir1’ и рекурсивно всё её содержимое

удалить две директории и рекурсивно их содержимое

Ну, и немного примеров:

подсчитать количество файлов в директории

находим все файлы в текущем каталоге и вывод отфильтровать по php и за дату Nov 2 2011 :

Внимательно смотрите на формат написания даты и количество пробелов

тоже самое, только с find:

и такое имеет место (найти файлы с 26 по 28 октября 2016) (не у всякого хостера работает newermt ):

тогда найти все файлы созданные после создания файла config.php (определите у себя подходящий по дате)

найти все файлы и вывод отфильтровать по ‘цифра.php’:

найденное можно удалить вот так:

или можете положить отобранные файлы в архив:

Иногда может потребоваться найти самые большие файлы в директории:

или в директории /home

Или самые большие папки (директории):

Источник

Читайте также:  691 код краски гранта
Компьютерный онлайн портал
Опция Описание
-name Поиск по имени.
-iname Регистронезависимый поиск по имени.
-type