Рекурсивно рекурсивно -связывать все символические ссылки с несколькими переходами -вместо прямой ссылки на конечный пункт назначения

Excel является продуктом Microsoft и не работает в Linux.

Существует некоторая поддержка VB за пределами Windows через проект Mono .

Мы не знаем, чего вы пытаетесь достичь, но, без сомнения, было бы проще, чище и целесообразнее придерживаться программ и инструментов Linux, например. Python и LibreOffice/OpenOffice.

3
22.07.2020, 21:19
2 ответа
#!/bin/bash
# Usage:./relinkToFinalDestination directory_path
directory=$1
find -L $directory -xtype l | while read file; do
    next_hop=$(readlink "$file")
    if [[ -e $next_hop ]]; then
      final=$(readlink -e "$file")
      echo "Got final path for $file --> $final"
      # Update the link
      ln -sf "$final" "$file"
    fi
done
0
18.03.2021, 23:18

С инструментами GNU:

find. -type l ! -xtype l -exec sh -c '
  for link do
    target=$(readlink -e -- "$link") &&
      ln -svTf -r -- "$target" "$link"
  done' sh {} +

Изменил бы все не -неработающие символические ссылки на относительные и без компонентов символических ссылок в их цели.

Удалите -r, если вы предпочитаете абсолютные символические ссылки.

Это предполагает, что ни одно из канонических абсолютных имен файлов, на которые указывают символические ссылки, не заканчивается символами новой строки (обычное ограничение подстановки команд, которое удаляет все конечные символы новой строки ).

2
18.03.2021, 23:18

Теги

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