КОНЬЯКОВ.ру

Разработка и поддержка веб-сайтов на 1C-Bitrix. E-commerce компетенции. Опыт с 2007 года.

Category: Bash

Как найти недавно изменённые файлы и папки в Unix/Linux

В Unix-like системах для поиска файлов и папок, изменённых за определённый период, используется команда find. Ниже — основные способы её применения.

1. Файлы, изменённые за последние 24 часа (в текущем каталоге и подкаталогах):

find . -mtime -1 -print

Опция «-mtime -1» сообщает команде find искать модифицированные файлы за последние сутки (24 часа).
Опция «-print» сообщает «find» выводить файлы и их пути (где они лежат) и данную команду можно заменить на «-ls» если нужно вывести подробную информацию о файле.

2. Файлы, изменённые за последние 30 минут:

find /home/captain -type f -mmin -30

3. Папки, изменённые за последние 30 минут:

find /home/captain -type d -mmin -30

4. Файлы, изменённые за 5 дней, исключая последний день:

find /home/captain -type f -mtime -5 ! -mtime -1

5. Вывод времени модификации и сортировка по нему (от новых к старым):

find /home/captain -type f -mtime -5 ! -mtime -1 -printf '%TY-%Tm-%Td %TT %p\n' | sort -r

6. Ограничение уровня вложенности (не более 3 папок):

Чтобы ограничить уровень вложенности, добавьте параметр «-depth». Например, поиск с уровнем вложенности не более 3 папок:

find /home/captain -type f -mmin -30 -depth -3

7. Вывод атрибутов файлов (изменённых за 60 минут):

find/ home/captain -type f -mmin -60 -exec ls -al {} \;

8. Альтернативный вариант с xargs:

find /home/captain -type f -mmin -60 | xargs ls -l

Итог: команда find позволяет гибко настраивать поиск по времени изменения, типу объекта, глубине вложенности и другим критериям. Комбинируя опции, можно решать разнообразные задачи — от простого поиска до детального анализа файловой системы.

Как в Linux найти все файлы НЕ содержащие строку

Например нам надо найти все php файлы, которые не содержат строку «/bitrix/footer.php» :

find .  -name "*.php"  -not  -ipath '.*svn*' -exec  grep  -H -E -o -c  "/bitrix/footer.php"  {} \; | grep 0

Или так (записать результат в файл):

find ./ -type f -name '*.php' -exec grep -L '/bitrix/footer.php' {} \; > result.txt
Скачать сайт целиком с помощью Wget игнорируя при этом robots.txt скачиваемого сайта

Скачать сайт целиком с помощью Wget игнорируя при этом robots.txt скачиваемого сайта

Так как Wget имитирует поисковой краулер (паук), то он по умолчанию просматривает файл robots.txt сайта и следует его инструкциям. Иногда вы хотите скачать сайт, но он не качается, т.к. в файле robots.txt указана следующая инструкция для поисковых роботов:

User-agent: *
Disallow: /

Эта инструкция запрещает роботам индексировать всё на этом сайте.

Но нам надо скачать сайт! Используя аттрибут -erobots=off можно проигнорировать любые инструкции из файла robots.txt и успешно скачать сайт.

Пример команды целиком:

wget -r -k -l 7 -p -E -nc -erobots=off --user-agent="Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36" http://www.example.com/

Advanced Bash-Scripting Guide

An in-depth exploration of the art of shell scripting here (http://www.tldp.org/LDP/abs/html/) or here (local copy)…

Bash script to mass convert files from UTF-8 to Windows-1251

[shell]$ nano converter.sh

#/bin/bash
LIST=`ls *.php`
for i in $LIST;
do iconv -f UTF8 -t WINDOWS-1251 $i -o $i."windows-1251";
mv $i."windows-1251" $i;
done

[shell]$ chmod +x converter.sh
[shell]$ ./converter.sh

© 2007–2026, konyakov.ru