Вы можете использовать find
и его тестовое условие -типа l
(которое проверяет, является ли найденный объект чернилами l или нет)
Например, если у вас есть файл с именем foo
в текущем каталоге, вы можете сделать это:
$ find . -type l -iname "foo" -delete
Вы можете упростить это с помощью всего:
$ find . -maxdepth 1 -type l -delete
Что удалит все символические ссылки в Текущий каталог.
Предупреждение:
Параметр -delete
в find
действительно опасен. ОБЯЗАТЕЛЬНО РАЗМЕСТИ ЭТО В КОНЦЕ КОМАНДЫ НАЙТИ. Если вы его потеряете, он удалит все, что найдет, независимо от того, соответствуют ли результаты вашему условию.
Как предлагается в комментариях, более безопасным вариантом может быть использование find
и rm -i
(что заставляет вас подтвердить удаление файла) в сочетании:
$ $ find . -type l -iname "foo" | xargs rm -i
Лично я используйте -exec trash {} \;
для временного удаления файлов, потому что я, как и вы, в прошлом был сожжен rm
. Двойное значение означает неправильно установленный флаг -удаление
.
Каждый дистрибутив, как правило, имеет свой собственный набор инструментов для этого, здесь не так много общего программного обеспечения.
Debian использует wanna-build
, buildd
и sbuild
, документацию по которым вы все найдете на сайте Debian(также перейдите по ссылкам ). wanna-build
поддерживает очередь сборки, buildd
выбирает пакет для сборки и sbuild
строит его. wanna-build
отслеживает пакеты с отсутствующими зависимостями, используя состояние «отложенное -ожидание» ; пакеты могут войти в это состояние напрямую (, если wanna-build
сами могут определить, что зависимости отсутствуют )или после сбоя сборки из-за отсутствующих зависимостей. Существует учебник , если вы хотите настроить локальную инфраструктуру сборки.
Fedora использует Koji , подробно документированный . Он также включает ряд различных компонентов , в том числе koji-hub
, интерфейс централизованной базы данных -и kojid
, который управляет сборками. Я не так хорошо знаком с Koji, поэтому я не знаю, как все это интегрируется для обработки состояний сборки.
Другие дистрибутивы имеют другие системы сборки, такие как Launchpad .Все они решают те же задачи, что и вы :централизованное представление всех пакетов, несколько систем сборки и централизованный репозиторий, в который поступают результаты сборки.