Журнал LinuxFormat - перейти на главную

LXF142:Совет месяца

Материал из Linuxformat
Версия от 09:55, 7 мая 2012; Crazy Rebel (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Вы наверняка знакомы с командой find, которая, понятное дело, ищет файлы – но умеет она много больше. Так, с опцией -exec над найденными файлами заодно выполнятся указанные действия – например,

find . -name ‘*~’ -exec rm “{}” \;

находит и удаляет все файлы резервных копий редактора в текущем и вложенных в него каталогах. Символы \; – признак завершения команды для -exec, а скобки заменяются именем файла. Работает команда неспешно, так как выполняется отдельно для каждого файла: rm file1, потом rm file2, и т. д.

Часто бывает лучше передать файлы в команду все разом – в режиме «exec с плюсом» команды find:

find . -name ‘*~’ -exec rm “{}” +

Тогда выполнится rm file1 file2… — а это на порядок быстрее.

Другой трюк – применить опцию -L, с которой find следует по символическим ссылкам, добавив в нее ключ -type для проверки типа файла. Этот ключ дает find указание считать ссылку на файл самим файлом, если только ссылка не тычется в никуда; таким способом можно обнаружить завалявшиеся «битые» ссылки.

find -L . -type l

Добавьте сюда опцию -exec, и вы удалите все неактуальные ссылки в каталоге.

Персональные инструменты
купить
подписаться
Яндекс.Метрика