disown
- это встроенная функция bash
(управление заданиями), как и switch
, continue
и history
. Таким образом, вы не найдете его ни в одном списке пакетов, не только в AplineLinux.
Я не уверен, является ли disown
новой функцией (отсутствующей в старых версиях) или необязательной. .
В Ubuntu версия bash - v4.3.46, но она доступна.
Для чего-то еще вы должны перейти к поиску по содержимому пакета .
В моем случае принятый ответ был бесполезен (, потому что он не выдавал источник ссылки ). Вот что сработало для меня.
Я работал над этим, используя два -exec
пункта:
find /home/ -type l -exec readlink -nf {} ';' -exec echo " -> {}" ';' | grep "/dir2"
Сzsh
:
print -rC1 /dir2/**/*(ND@e['[[ $REPLY:P = /dir1(/*|) ]]'])
Сломанный:
print -rC1
:печатает свои аргументы r
aw в колонке 1
C
. Здесь аргументы будут сгенерированы из следующего глобуса. Замените на ls -ld
, чтобы получить больше информации о каждой символической ссылке¹ **/
:любой уровень подкаталогов (рекурсивная подстановка)*
:файл с любым именем (, состоящим из любого количества символов, хотя zsh *
, как и в большинстве оболочек, также допускает не -символы ). (...)
:квалификаторы glob для уточнения соответствия по другим критериям, а не только по имени файла N
:enable nullglob
для этого одного глобуса (не произойдет сбой, если совпадений нет, просто передайте пустой список в print
, который ничего не напечатает ). D
:включитьdotglob
:также учитывать скрытые файлы. @
:ограничить файлы типа символической ссылкой . e['code']
:выберите файлы, для которых code
принимает значение true. Внутри code
рассматриваемый файл хранится в $REPLY
. $REPLY:P
:получает абсолютный и канонический (свободный от символической ссылки )путь к файлу (аналогично тому, что делает стандартная функция realpath()
). [[ string = pattern ]]
возвращает true, если строка соответствует шаблону (из ksh ). /dir1(/*|)
, так как шаблон соответствует только /dir1
или /dir1/
, за которым следует что-либо. ¹ с оговоркой, что если нет подходящего файла, будет указан текущий рабочий каталог. Для ls
было бы лучше удалить квалификатор N
glob
В зависимости от ваших обстоятельств вы можете удалить каталог, а затем удалить все полученные недействительные символические ссылки со следующим:
find -xtype l -delete
Тест xtype возвращает 'l', если символическая ссылка не работает.