к функции cut+sed присоединяются

Необходимо только обменяться данными разделы. Не совместно используйте разделы программы.

/home прекрасен, но избегайте мусорного ведра, dev, и т.д., usr, var, выберите, и в значительной степени что-либо кроме дома.

Что касается файловой системы, это должно будет быть что-то, для чего оба ядра имеют драйверы. Я не уверен, как поддержка расширения хорошего BSD, но поддержка UFS Linux достаточно хороша, что означает, что Вы, вероятно, хотите придерживаться UFS или MS-DOS. Раздел подкачки может быть совместно использован, пока оба распознают тот же тип раздела для подкачки (который я полагаю, что они делают, но я не уверен).

И если Вы совместно используете разделы между операционными системами, не делают ничего как попытка работать один в VM от другого. Операционные системы должны иметь эксклюзивный контроль над файловыми системами. Две различных рабочих операционных системы, что вещь они оба имеют эксклюзивный контроль над разделом, приведут к повреждению очень быстро.

0
07.10.2013, 23:46
4 ответа

У Вас есть несколько опций здесь. Мое предпочтение было бы к расширению параметра:

foo=dir/foo
echo "${foo%/*}./"

Другая опция является awk:

echo "dir/foo" | awk -F/ '{ print $1"./" }'
6
28.01.2020, 02:13

Другое использование read

IFS=/ read a b <<<"dir/foo"
echo "$a./"

Не будет работать, если "dir/нечто" будет на самом деле "/home/user/foo"

4
28.01.2020, 02:13

Можно использовать также dirname с read

read foo
echo "$(dirname "$foo")./"

и dirname с xargs.

echo "$(xargs dirname)./"

Использование в качестве примера с функцией:

$ MAGIC() { echo "$(xargs dirname)./"; }
$ echo 'dir/foo' | MAGIC
dir./
4
28.01.2020, 02:13

Я не уверен, что Вы пытаетесь сделать здесь. Вы действительно хотите литерал .? Это чувствует себя подобно проблеме XY.

Так или иначе простой способ сделать, что Вы, кажется, спрашиваете, состоит в том, чтобы использовать dirname:

$ echo $(dirname "dir/foo")./
dir./

Основные преимущества dirname это, это может иметь дело с пробелами и является частью GNU coreutils, так будет установлен во всех системах GNU. Также это может иметь дело с произвольно длинными трактами:

$ echo $(dirname "aa/bb bb/cc/foo")./
aa/bb bb/cc./

Можно использовать прием @EvanTeitelman для превращения этого в функцию:

$ MAGIC() { echo $(dirname "$1")./; }
$ MAGIC 'dir/foo'
dir./
$ MAGIC 'dir/foo bar/foo'
dir/foo bar./
4
28.01.2020, 02:13

Теги

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