Используйте 'ln' для создания недостающего каталога

Другая альтернатива при предыдущем использовании вопросов о конфигурации пакета Debconf настроить вещи, должна была бы получить информацию перед семенем и использование что сделать новую установку. Вы сохранили бы свои ранее настроенные ответы. Вы, вероятно, все еще хотели бы скопировать что-либо в /etc это, возможно, было изменено локально после debconf конфигурация. Если Вы имеете /home как отдельный раздел можно просто сказать установщику не переформатировать тот раздел и просто смонтировать его, как как /home и Ваша информация будет сохранена также.

10
04.07.2012, 22:08
3 ответа

Вам не будет нужен замысловатый сценарий удара, но простая острота. mkdir --parents будет заботиться обо всем, приятно даже не печатая ошибку, если структура каталогов уже будет существовать.

Просто будьте осторожны с тем, как Вы рассматриваете эти каталоги на удалении, таким образом, Вы не повреждаете другие пакеты.

Кроме того, так как Вы пишете это в bash, можно смотреть на колдовство (бесстыдный разъем). Возможно, было бы более просто просто изменить это, поскольку это является сформировавшимся и гибким.

3
27.01.2020, 20:03
  • 1
    Ой, я забыл упоминать, что я пишу это в C++ и соединяю интерфейсом с ударом с системой () вызовы, потому что это легче. Это - то, что я закончил тем, что делал хотя, спасибо. –  Chris 04.07.2012, 18:30
  • 2
    @Chris: system() не более легко, очень трудно выйти из параметров командной строки правильно с system(). По крайней мере необходимо использовать posix_spawn() или fork()+exec*(), который принимает параметры командной строки как массивы. –  Lie Ryan 30.10.2015, 15:04

Нет никакого флага, чтобы сделать это с ln. Создание каталогов не является своим заданием.

mkdir -p foo/bar/qux создаст foo, foo/bar и foo/bar/qux по мере необходимости. Так вызов mkdir -p на всех кроме последнего компонента контура сначала.

Это кажется, что Вы изобретаете велосипед, Убирают, простой диспетчер пакетов, который объединяет иерархии каталогов путем создания каталогов на необходимую глубину с символьными ссылками на компоненты различных пакетов внутри. Или возможно XStow, который похож, Убирает, но с большим количеством возможностей настройки.

4
27.01.2020, 20:03

Возможно, tar может помочь подготовить файл со ссылками:

find . -type l > links.txt
tar cpf links.tar --files-from links.txt

А затем создать ссылки там, где это необходимо:

tar xvf links.tar
0
27.01.2020, 20:03

Теги

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