LXF142:Совет месяца
|
|
|
Вы наверняка знакомы с командой 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, и вы удалите все неактуальные ссылки в каталоге.