Мой сайт
Главная | Каталог статей | Регистрация | Вход
Суббота
27.04.2024
04:58
Приветствую Вас Гость | RSS
Главная » Статьи » Linux и Unix

Linux: примеры поиска файлов часть 7

Удалить большой архив

Команда удаляет файлы с расширением *.zip, которые больше 100 мегабайт.

# find / -type f -name *.zip -size +100M -exec rm -i {} ;"

Удалить все файлы с расширением *.tar больше 100Mб используя сокращенный псевдоним rm100m (Remove 100M). Подобным же способом создаём команды для удаления архивов *.tar больше 1, 2 и 5Гб.

# alias rm100m="find / -type f -name *.tar -size +100M -exec rm -i {} ;"
# alias rm1g="find / -type f -name *.tar -size +1G -exec rm -i {} ;"
# alias rm2g="find / -type f -name *.tar -size +2G -exec rm -i {} ;"
# alias rm5g="find / -type f -name *.tar -size +5G -exec rm -i {} ;"

# rm100m
# rm1g
# rm2g
# rm5g

Поиск файлов с одновременным изменением прав доступа

Изменим свойства всех php-файлов (php, php4, php5) в директории /var/www/ на 644 (пользователь может изменять и читать, группа и остальные только читать):

find /var/www/ -name "*.php*” -exec chmod 644 {} ;

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

Найти в каталоге /etc (и во вложенных каталогах) все файлы, имена которых заканчиваются на .conf и владельцем которых является пользователь cupsys.

$ find /etc -name '*.conf' -user cupsys -print
find: /etc/ssl/private: Permission denied
find: /etc/cups/ssl: Permission denied
/etc/cups/cupsd.conf
/etc/cups/printers.conf

Удаление временных файлов

Удалим все файлы в текущей директории, заканчивающиеся на  ~. Обычно файлы с тильдой на конце являются временными файлами, созданными текстовыми редакторами. Этим же способом можно удалить файлы, заканчивающие любыми нужными символами. Вместо xargs безопаснее использоватьfind . -print0 | xargs -0 cmd

find -name "*~” | xargs rm #is equivalent to rm -r "*~” ;

Поиск файлов, измененных в определённое время

В четырёх строках ниже производится четыре поиска файлов: тех, что были изменены за предыдущий день, за последние десять минут, более чем год назад и ровно 4 дня назад (четвёртый поиск, наверное, не самый остро необходимый).  Внимание: если перед цифрой не стоит + или –, то ищутся файли, изменённые ровно в указанное время.

$ find . -ctime -1 -type f
$ find ~ -mmin -10
$ find ~ -mtime +365
$ find ~ -mtime 4

Опция -daystart определяет отсчет времени с момента начала текущих суток.

Чтобы вывести все файлы в Вашем домашнем каталоге, модифицированные вчера, введите:

$ find ~ -mtime 1 -daystart

Чтобы вывести все файлы в каталоге /usr, модифицированные в течение года, введите:

$ find /usr -mtime +356 -daystart

Чтобы вывести все файлы в Вашем домашнем каталоге, модифицированные в период от 2 до 4 дней тому назад, наберите:

$ find ~ -mtime 2 -mtime -4 -daystart

Чтобы найти все файлы новее определенной даты, используйте следующий трюк: создайте временный файл в каталоге /tmp и установите дату его модификации на требуемую с помощью touch, а затем определите его как аргумент для -newer.  Чтобы вывести все файлы в Вашем домашнем каталоге, модифицированные после 4 мая текущего года, введите:

 $ touch -t 05040000 /tmp/timestamp
 $ find ~ -newer /tmp/timestamp

Поиск средствами which и whereis

Программа whereis производит поиск исполняемого файла, исходного кода и документации (страницы руководства) для заданной команды, просматривая каталоги из заранее определенного списка. Выведем информацию о местонахождении исполняемого (двоичного) файла и man-страницы для команды ls.

$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz

Команда which еще более специализирована. Она ищет путь до заданной команды и выводит первый результат. Следующая команда сообщает, что команда vi — это исполняемый файл /usr/bin/vi. По сути, это ответ на вопрос: «Если бы я ввел команду vi, то какая программа запустилась бы на самом деле?»

$ which vi
/usr/bin/vi

Чтобы определить, установлен ли в Вашей системе perl и где он расположен, введите:

$ which perl
/usr/bin/perl

Поиск по содержимому файлов с помощью grep

Как мы убедились, средства поиска типа find могут искать файлы по имени, размеру, владельцу, времени доступа и многим другим параметрам, но не могут искать файлы по содержимому. Оказывается, файлы достаточно изящно находятся по содержимому при помощи grep, используемой совместно с шаблонами оболочки для файлов. В примере ниже мы просим grep вывести имена файлов, содержащих строку Hudson. Шаблон */* разворачивается оболочкой и означает список всех файлов, находящихся на один уровень ниже текущего каталога.

$ grep -l Hudson */*
Desktop/suse_book_press_release.txt
google-earth/README.linux
Mail/inbox.ev-summary
Mail/sent-mail.ev-summary
snmp_training/enterprise_mib_list

Если нужно наложить некоторые условия на имя файла, следующей командой будем искать только файлы с расширением .txt, внутри которых есть строка Hudson:

$ grep -l Hudson */*.txt
Desktop/search_tools.txt
Desktop/suse_book_press_release.txt

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

$ grep -l Hudson */* */*/*
bash: /bin/grep: Argument list too long

Более эффективный подход — использовать grep совместно с find. Поиск файлов с расширением .txt, содержащих строку Hudson и находящихся в моем домашнем каталоге ('~'), выглядит так:

$ find ~ -name '*.txt' -exec grep -q Hudson {} ; -print
/home/chris/Desktop/search_tools.txt
/home/chris/Desktop/suse_book_press_release.txt


Источник: http://bestann.com.ru/comments/linux_find/
Категория: Linux и Unix | Добавил: SAM (20.07.2010)
Просмотров: 11240 | Комментарии: 5 | Рейтинг: 0.0/0
Всего комментариев: 4
4 Theron1997  
0
, а еще рекомендую http://bygor.com/catalog.php?id=511 - купить Sony SLT-A77M

3 Rudy1962  
0
Есть прикольные моменты в статьях на bk0010.ruе, спасибо, а фид есть?,
кстати наверняка кому-нибудь надо новинка сезона: http://telecomsb.ru - камеры видеонаблюдения онлайн - очень современное оборудование. также хочу посоветовать http://telecomsb.ru - установка охранной сигнализации недорого

2 Аlina92  
0
bk0010.ru достоен быть в закладках. увлекся чтением ваших опусов. да смеюсь я, смеюсь
кстати, знаю где есть экономный вариант http://xn------8cdbjqbtjzgjjnpd3cbe0sna.xn--p1ai - белорусская мебель из сосны

1 Vlada74  
0
Хорошая рецензия для нормальных посетителей сайта bk0010.ru
кстати, знаю где недорого http://xn------8cdbjqbtjzgjjnpd3cbe0sna.xn--p1ai - мебель из сосны

Имя *:
Email *:
Код *:
Форма входа
Категории раздела
Мои статьи [0]
Linux и Unix [47]
Все про Linux и Unix
Windows [2]
Все про Windows
Администрирование [5]
Все для Системного администратора
Cisco [2]
Мой опыт работы с кисками
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Copyright MyCorp © 2024
    Бесплатный конструктор сайтов - uCoz