Настройка и работа в Linux



              

Поиск в unix Часть1 - часть 4


Для того что бы убедиться в том, что это сработало, выполним первоначальную команду find: find . -name "*.pdf" -print ./pdfs/50130201a.pdf ./pdfs/50130201b.pdf ./pdfs/50130201c.pdf ./pdfs/IWARLab.pdf ./pdfs/DoS_trends.pdf ./pdfs/Firewall-Guide.pdf ./pdfs/2000_ports.pdf

Посмотрим, каким образом работает эта конструкция. В то время как grep заканчивает фильтрацию вывода команды find, мы передаем результаты его работы команде xargs, для завершения операции. Ключ J говорит xargs взять все полученные строки и подставить их в указанную команду. Например перед вызовом команды find я не знал сколько файлов придется перемещать – такой файл может быть один, или их может быть несколько. Вне зависимости от того, сколько файлов будет найдено, мне необходимо что бы все они были перемещены в каталог pdfs. Это сделать нам поможет маленькая магия ключа J. Для того чтобы ключ J сработал правильно, я определил символ «X» и поместил его по обоим сторонам команды mv. (Я честно перевел это, вы, я думаю, честно прочитали. На самом деле так никто не делает. Во второй части этой статьи вы узнаете как пользоваться ключом «-exec», который как раз и предназначен для подобных действий – прим. переводчика).

Помните, что имена файлов в системе UNIX не обязательно имеют расширения. Поэтому вам может понадобиться задать более сложный образец для поиска. Скажем, я захотел найти все файлы, содержащие в своем имени подстроку «bsd». Для этого следует воспользоваться следующей командой: find . -name "*bsd*" -print ./.kde/share/icons/favicons/www.freebsd.org.png ./.kde/share/icons/favicons/www.freebsddiary.org.png ./.kde/share/wallpapers/bsdbg1280x1024.jpg ./mnwclient-1.11/contrib/freebsd

Мы можем искать файлы не только по имени. Например найдем файлы, которые не читали более чем (условие «более чем» задается знаком «+») 30 дней: find . -atime +30 -print

Для поиска файлов, которые вы не модифицировали какое-то время, используйте ключ «-mtime», а для файлов у которых определенное время назад не менялись права доступа используйте «-ctime». Число после символа «+» задает количество дней (суток). Для того, что бы узнать какие файлы были модифицированы сегодня, попробуйте: find . -mtime -1 -print




Содержание  Назад  Вперед