Есть ли инструмент для автоматического удаления всех недействительных символических ссылок?

Возможно, это не самое элегантное решение, но оно обеспечит точный вывод, который вы указали, включая пробелы:

#!/bin/bash

function CreateList()
{
  col="$1"
  shift
  cut -d ',' -f $col $@ | sed -r '1d ; s/^[ ]+|[ ]$// ; y/\n/ /; s/[ ]+$/\n/' | xargs echo | sed 's/ /, /'
}

for f in list2.csv list1.csv
do
  echo -n "${f//.csv}: "
  CreateList 2 "$f"
done

Вывод:

list2: fname3, fname4
list1: fname1, fname2
0
08.03.2018, 07:22
1 ответ

FSlint hará esto por usted, al menos en su GUI. También tiene variantes de línea de comando -:

/usr/share/fslint/fslint/findbl /usr/bin

pero eso no parece tener una opción para eliminar los enlaces rotos.

Sin embargo, ni siquiera necesita una herramienta específica para esto, su sistema ya tiene una herramienta que es capaz de eliminar enlaces simbólicos rotos:find. Consulte ¿Cómo puedo encontrar enlaces simbólicos rotos para obtener más detalles? puede tomar un comando finddado allí y agregarle -deletepara eliminar los enlaces (después de verificar la salida...):

find /usr/bin -xtype l -delete
1
28.01.2020, 02:43

Теги

Похожие вопросы