LXF142:Совет месяца
(викификация, оформление) |
|||
Строка 3: | Строка 3: | ||
find . -name ‘*~’ -exec rm “{}” \; | find . -name ‘*~’ -exec rm “{}” \; | ||
− | находит и удаляет все файлы резервных копий редактора в текущем и вложенных в него каталогах. Символы '''\'''; – признак завершения команды для ''-exec''', а скобки заменяются именем файла. Работает команда неспешно, так как выполняется отдельно для каждого файла: ''rm file1'', потом ''rm file2'', и т. д. | + | находит и удаляет все файлы резервных копий редактора в текущем и вложенных в него каталогах. Символы '''\'''; – признак завершения команды для '''-exec''', а скобки заменяются именем файла. Работает команда неспешно, так как выполняется отдельно для каждого файла: ''rm file1'', потом ''rm file2'', и т. д. |
Часто бывает лучше передать файлы в команду все разом – в режиме «'''exec с плюсом'''» команды ''find'': | Часто бывает лучше передать файлы в команду все разом – в режиме «'''exec с плюсом'''» команды ''find'': |
Текущая версия на 09:55, 7 мая 2012
|
|
|
Вы наверняка знакомы с командой 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, и вы удалите все неактуальные ссылки в каталоге.