Как преобразовать абсолютный путь в относительный путь?

Does anyone know if it can be done?

Да, можно. С логической точки зрения флешка ничем не отличается от любого жесткого диска. У него может быть таблица разделов, и каждый из его разделов может быть отформатирован с любой файловой системой, которая вам нравится. Более того, вы всегда можете установить Linux на любое отдельное блочное устройство. Единственное требование для вас состоит в том, что ваша система должна знать, как загружать это конкретное блочное устройство.

Таким образом, вопрос на самом деле не в том, можно ли сделать то, чего вы хотите достичь, (это возможно ), а в том, вы можете ли вы сделать это, не нанося вреда вашей существующей системе. Я не могу на это ответить, но, как сказал вам Руи Ф. Рибейро в комментарии, тот факт, что вы спрашиваете, может означать, что было бы разумно немного подождать, пока вы не приобретете некоторый опыт работы с Linux.

What complications should I expect if it can be done?

Трудно ответить. Этот вопрос довольно широкий, он сильно зависит от ваших навыков и,лично я не знаком с книгой LSF и не касался дистрибутива Slackware почти 20 лет.

Я вижу две возможные проблемы:

  • Будьте осторожны при выборе диска для разбиения. У вас будет по крайней мере три диска на вашем компьютере :основной жесткий диск, который вы не хотите трогать (сначала сделайте резервную копию! ), живой USB-накопитель, с которого вы работаете, новый диск, на который вы устанавливаете Linux. Вероятно, они будут называться sda, sdb и sdc. Вы должны точно знать, что есть что. Это самый большой риск. Просто будьте осторожны, ни один дистрибутив Linux не сотрет данные, не спросив вас об этом.
  • Вы говорите, что не используете настойчивость. Я предполагаю, что все ваши изменения в дистрибутиве только для чтения -live будут храниться в оперативной памяти. Компиляция таких больших вещей, как ядро ​​Linux или libc, может потребовать много места на диске, которое в вашей ситуации превратится в пространство ОЗУ (, если я не ошибаюсь, опять же, я не знаю LFS ). У вас достаточно оперативной памяти? Обратите внимание, что если вы этого не сделаете, это не будет большим риском, в какой-то момент все просто потерпит неудачу.

Удачи. Будь смелым, но не будь безрассудным.

2
02.06.2019, 17:16
2 ответа

Используйте

realpath --relative-to=. /absolute/path

Подробнее об этом здесь .

11
27.01.2020, 21:50

Просто для удовольствия "покатать свое собственное"

here=/dir1
there=/dir1/dir4/dir5/my.file
root=""
if [ ! -z $(grep "^$here" <<<$there) ]; then
    root="./"
else while [ -z $(grep  "^$here" <<<$there) ]; do
    here=${here%/*}
    root=${root}../
    done
fi
echo $root$(sed "s|^$here/||g" <<<$there)

./dir4/dir5/my.file

и для

here=/dir1/dir2/dir3

../../dir4/dir5/my.file
1
27.01.2020, 21:50

Теги

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