Access: 2012-10-08 15:23:33.000000000 -0400
Modify: 2012-10-08 15:23:33.000000000 -0400
Change: 2012-10-08 15:23:33.000000000 -0400
Далее воспользуемся командой find, чтобы обновить время последнего изменения некоторых файлов в нашей песочнице:
[me@linuxbox ~]$ find playground -type f -name 'file-B' -exec touch '{}' ';'
Эта команда обновит время последнего изменения для всех файлов с именем file-B, имеющихся в песочнице. Теперь найдем с помощью find обновленные файлы, сравнив все файлы с эталонным файлом timestamp:
[me@linuxbox ~]$ find playground -type f -newer playground/timestamp
В результате мы получим все 100 файлов с именем file-B. Поскольку команда touch применялась ко всем файлм file-B в песочнице после обновления файла timestamp, они оказались «новее», чем timestamp, и потому были идентифицированы проверкой -newer.
В заключение вернемся к проверке плохих разрешений, выполнявшейся выше, и применим ее к каталогу playground:
[me@linuxbox ~]$ find playground \( -type f -not -perm 0600 \) -or \( -type d -not -perm 0700 \)
199
Эта команда выведет все 100 каталогов и 2600 файлов, хранящихся в playground (а также файл timestamp и сам каталог playground, всего 2702 элемента), потому что ни один из них не соответствует нашему определению «удовлетворительные разрешения». Вооружившись новыми знаниями об операторах и операциях, добавим в эту команду операции для применения новых разрешений к файлам и каталогам в песочнице:
[me@linuxbox ~]$ find playground \( -type f -not -perm 0600 -exec chmod 0600
'{}' ';' \) -or \( -type d -not -perm 0700 -exec chmod 0700 '{}' ';' \)
Основываясь на повседневном опыте, следует отметить, что намного проще ввести две команды — одну для каталогов и одну для файлов, чем одну большую составную команду, но знание, что можно действовать именно так, вам не помешает. Главное, что вы должны понять, — как можно использовать операторы и операции для решения практических задач.
Параметры
Наконец мы добрались до параметров. Параметры помогают управлять областью поиска. Они могут включаться в выражения команды find наряду с другими проверками и операциями. В табл. 17.8 перечислены наиболее часто используемые параметры.
Таблица 17.8. Параметры команды find
Параметр | Описание |
-depth | Требует от find обработать сначала файлы в каталогах и только потом каталоги. Этот параметр автоматически применяется с операцией -delete |
-maxdepth число_уровней | Устанавливает максимальное число уровней, на которое команда find может опускаться в дереве каталогов, выполняя проверки и операции |
-mindepth число_уровней | Устанавливает минимальное число уровней, на которое команда find должна опуститься в дереве каталогов перед выполнением проверок и операций |
-mount | Требует от find не выполнять обход каталогов, в которые смонтированы другие файловые системы |
-noleaf | Требует от find не оптимизировать поиск, опираясь на предположение, что поиск ведется в Unix-подобной файловой системе. Этот параметр необходимо использовать при обходе файловых систем DOS/Windows CD-ROM |
18. Архивация и резервное копирование
Одной из основных задач администратора компьютерных систем является обеспечение безопасности данных, а одним из способов решения этой задачи — своевременное создание резервных копий системных файлов. Даже если вы не являетесь системным администратором, вам все равно пригодится умение создавать копии и перемещать большие коллекции файлов из одного места в другое и с одного устройства на другое.
В этой главе мы рассмотрим несколько программ, часто используемых для управления коллекциями файлов, в том числе:
Программы сжатия:
• gzip — сжимает и распаковывает файлы.
• bzip2 — программа поблочного сжатия файлов.
Программы архивирования:
• tar — утилита архивирования на ленту.
• zip — упаковывает и сжимает файлы.
И программа синхронизации файлов:
• rsync — выполняет синхронизацию файлов и каталогов с удаленной системой.
Сжатие файлов