ln: неверный параметр & mdash; '/'

Резервное копирование! Резервное копирование!! Резервное копирование!! (Сделайте 3 резервных копии)

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

Работа с разделами опасна. Вы никогда не должны пытаться работать с разделами, с которых работает система. Сначала все разделы должны быть размонтированы. На картинке в вопросе /dev/sda4 устанавливается как root: /, как показано рядом с ним. Это говорит мне, что Ubuntu работает в этом разделе. Чтобы отключить загрузку этого раздела с Live USB / DVD.

Пошаговые инструкции

Выберите sda5. Вы можете либо щелкнуть верхнее представление, либо строку в таблице ниже. Я нажал на четвертый ряд, чтобы сделать его красным.

Выберите sda5. Вы можете либо щелкнуть верхнее представление, либо строку в таблице ниже. Я нажал на четвертый ряд, чтобы сделать его красным.

Gparted покажет действие, которое вы выбрали в нижней панели. Убедитесь, что это то, что вы хотите сделать. Еще есть время вернуться. Если вы хотите вернуться, нажмите оранжевую кнопку «Отменить последнюю операцию». Если вы уверены, что вы делаете, нажмите кнопку «Все зеленые галочки» на верхней панели.

enter image description here

Gparted покажет действие, которое вы выбрали в нижней панели. Убедитесь, что это то, что вы хотите сделать. Еще есть время вернуться. Если вы хотите вернуться, нажмите оранжевую кнопку «Отменить последнюю операцию». Если вы уверены, что вы делаете, нажмите кнопку «Все зеленые кнопки» для всех операций.

enter image description here

28] Это ваш последний шанс на Отменить последнюю операцию . Если вы все еще уверены. Нажмите Применить. После нажатия «Применить» Gparted сделает это, и вы увидите следующее:

Это ваш последний шанс Отменить последнюю операцию операция. Если вы все еще уверены. Нажмите Применить. После нажатия «Применить» Gparted сделает это, и вы увидите следующее: Выберите sda3 и нажмите кнопку изменения размера:

[d45 ] Выберите sda3 и нажмите кнопку изменения размера:

enter image description here [!d34]

Это должно выглядеть так. Нажмите кнопку Применить , когда вы будете удовлетворены.

enter image description here [!d34]

Он должен выглядеть так. Нажмите кнопку Применить , когда вы будете удовлетворены.

Как только вы нажмете зеленую кнопку. Вы увидите это предупреждение:

Как только вы нажмете зеленую кнопку. Вы увидите это предупреждение:

enter image description here [!d62]

Если он должен сказать, что все операции успешно завершены, поздравляем! Вы сделали. Закройте окно и закройте Gparted.

Надеюсь, это поможет

2
задан 21 February 2018 в 13:43

6 ответов

Я бы предложил заменить переменную $kernel_version на фактическое значение.

Как описано ниже, использование нижеприведенной команды с backtick вместо одиночной кавычки также должно решить проблему:

$ kernel_version=`uname -r`

Как уже упоминалось @steeldriver, ошибка возникает из-за использования обратного хода вместо обратного хода, которые окружают команду uname -r.

, следовательно, следующая команда образца:

$ kernel_version='uname -r'
$ ln -sf /tmp/test/$kernel_version/example /tmp/newname
ln: invalid option -- '/'
Try 'ln --help' for more information.

Будет переведена на:

$ ln -sf /tmp/test/uname -r/example /tmp/newname
ln: invalid option -- '/'
Try 'ln --help' for more information.

И как @steeldriver написал: Предположительно сообщение об ошибке содержит недопустимую опцию , потому что -r является допустимым вариантом для команды ln

Обратите внимание, что использование обратного хода будет работать без ошибок:

$ kernel_version=`uname -r`
$ ln -sf /tmp/test/$kernel_version/example /tmp/newname
$ 
$ ls -l /tmp/newname 
lrwxrwxrwx 1 user user 35 Feb 21 16:02 /tmp/newname -> /tmp/test/4.4.0-112-generic/example
6
ответ дан 22 May 2018 в 12:59
  • 1
    после замены «$ kernel_version» на фактическое имя! Спасибо! – Aleksei Kovaltsuk 21 February 2018 в 13:37
  • 2
    спасибо Ярону за обновление, я читал об этом, изредка это не решило проблему, но истинное имя $ kernel. – Aleksei Kovaltsuk 21 February 2018 в 13:45
  • 3
    просто вопрос к системе, почему сообщение об ошибке не описывает проблему человека? почему он сказал недействительный вариант - '/'? – Aleksei Kovaltsuk 21 February 2018 в 13:47
  • 4
    @AlekseiKovaltsuk - Счастлив, что ваша проблема решена! – Yaron 21 February 2018 в 13:47
  • 5
    @AlekseiKovaltsuk ln пытается найти каждый введенный вами параметр, а поскольку содержимое переменной содержит отдельные дефисы -, «это должны быть варианты», - думает он. Но до этого есть путь, начинающийся с косой черты /. «Это также должен быть вариант, потому что за ним есть другие, но stop , я не знаю, как это происходит! Сообщаем пользователю, что я нашел недопустимую опцию, и какой символ меня смущает ». Таким образом, ln говорит :. Есть invalid option, найдите странную вещь в одинарных кавычках после двойных дефис, так что ясно, какой символ я имею в виду: -- '/'. – dessert 21 February 2018 в 14:08

Я бы предложил заменить переменную $kernel_version на фактическое значение.

Как описано ниже, использование нижеприведенной команды с backtick вместо одиночной кавычки также должно решить проблему:

$ kernel_version=`uname -r`

Как уже упоминалось @steeldriver, ошибка возникает из-за использования обратного хода вместо обратного хода, которые окружают команду uname -r.

, следовательно, следующая команда образца:

$ kernel_version='uname -r' $ ln -sf /tmp/test/$kernel_version/example /tmp/newname ln: invalid option -- '/' Try 'ln --help' for more information.

Будет переведена на:

$ ln -sf /tmp/test/uname -r/example /tmp/newname ln: invalid option -- '/' Try 'ln --help' for more information.

И как @steeldriver написал: Предположительно сообщение об ошибке содержит недопустимую опцию '/', потому что -r является допустимым вариантом для команды ln

Обратите внимание, что использование обратного хода будет работать без ошибок:

$ kernel_version=`uname -r` $ ln -sf /tmp/test/$kernel_version/example /tmp/newname $ $ ls -l /tmp/newname lrwxrwxrwx 1 user user 35 Feb 21 16:02 /tmp/newname -> /tmp/test/4.4.0-112-generic/example
6
ответ дан 17 July 2018 в 20:19

Я бы предложил заменить переменную $kernel_version на фактическое значение.

Как описано ниже, использование нижеприведенной команды с backtick вместо одиночной кавычки также должно решить проблему:

$ kernel_version=`uname -r`

Как уже упоминалось @steeldriver, ошибка возникает из-за использования обратного хода вместо обратного хода, которые окружают команду uname -r.

, следовательно, следующая команда образца:

$ kernel_version='uname -r' $ ln -sf /tmp/test/$kernel_version/example /tmp/newname ln: invalid option -- '/' Try 'ln --help' for more information.

Будет переведена на:

$ ln -sf /tmp/test/uname -r/example /tmp/newname ln: invalid option -- '/' Try 'ln --help' for more information.

И как @steeldriver написал: Предположительно сообщение об ошибке содержит недопустимую опцию '/', потому что -r является допустимым вариантом для команды ln

Обратите внимание, что использование обратного хода будет работать без ошибок:

$ kernel_version=`uname -r` $ ln -sf /tmp/test/$kernel_version/example /tmp/newname $ $ ls -l /tmp/newname lrwxrwxrwx 1 user user 35 Feb 21 16:02 /tmp/newname -> /tmp/test/4.4.0-112-generic/example
6
ответ дан 23 July 2018 в 21:01
Используйте нотацию $( ... ) вместо обратных ссылок старого стиля `...` для замены команд. Он выглядит лучше, и гнездится лучше. И с меньшей вероятностью будут замешаны кавычки. Отправьте свои переменные. Строка uname -r в kernel_version, /lib/modules/$kernel_version/extra/mISDN_core.ko расширяется до двух слов /lib/modules/uname и -r/extra/mISDN_core.ko, когда вам явно требуется только одно имя файла. Цитируется, "/lib/modules/$kernel_version/extra/mISDN_core.ko" будет расширяться до /lib/modules/uname -r/extra/mISDN_core.ko как одно слово, и вы получите сообщение об ошибке из ln, потому что файл с этим именем не существует. Не обязательно здесь, если вы правильно указали переменные, так как ваши имена файлов начинаются с косой черты, но в целом вы можете захотеть добавить двойную тире --, чтобы сигнализировать о конце опций. С именами файлов, начинающимися с тире, он должен использоваться, чтобы приложение могло определить разницу между опцией и именем файла. В качестве классического примера рассмотрим, что произойдет, если вы запустите rm * в каталоге, содержащем файл с именем -rf. rm -- * предотвращает проблему (как rm ./*).

Не делая (1) или (2), ln действительно видит строку -r/kernel... как один из аргументов, а поскольку GNU ln читает параметры из всех аргументов, а не только первые , он принимает -r как известную опцию, а затем ошибки на /, так как -/ не является опцией, о которой он знает.

Итак, в полном объеме, что вам нужно сделать: [ ! d10]

kernel_version=$(uname -r)
ln -sf -- "/lib/modules/$kernel_version/extra/mISDN_core.ko" \
    "/lib/modules/$kernel_version/kernel/drivers/isdn/mISDN/mISDN_core.ko"
0
ответ дан 22 May 2018 в 12:59
Используйте нотацию $( ... ) вместо обратных ссылок старого стиля `...` для замены команд. Он выглядит лучше, и гнездится лучше. И с меньшей вероятностью будут замешаны кавычки. Отправьте свои переменные. Строка uname -r в kernel_version, /lib/modules/$kernel_version/extra/mISDN_core.ko расширяется до двух слов /lib/modules/uname и -r/extra/mISDN_core.ko, когда вам явно требуется только одно имя файла. Цитируется, "/lib/modules/$kernel_version/extra/mISDN_core.ko" будет расширяться до /lib/modules/uname -r/extra/mISDN_core.ko как одно слово, и вы получите сообщение об ошибке из ln, потому что файл с этим именем не существует. Не обязательно здесь, если вы правильно указали переменные, так как ваши имена файлов начинаются с косой черты, но в целом вы можете захотеть добавить двойную тире --, чтобы сигнализировать о конце опций. С именами файлов, начинающимися с тире, он должен использоваться, чтобы приложение могло определить разницу между опцией и именем файла. В качестве классического примера рассмотрим, что произойдет, если вы запустите rm * в каталоге, содержащем файл с именем -rf. rm -- * предотвращает проблему (как rm ./*).

Не делая (1) или (2), ln действительно видит строку -r/kernel... как один из аргументов, а поскольку GNU ln читает параметры из всех аргументов, а не только первые , он принимает -r как известную опцию, а затем ошибки на /, так как -/ не является опцией, о которой он знает.

Итак, в полном объеме, что вам нужно сделать: [ ! d10] kernel_version=$(uname -r) ln -sf -- "/lib/modules/$kernel_version/extra/mISDN_core.ko" \ "/lib/modules/$kernel_version/kernel/drivers/isdn/mISDN/mISDN_core.ko"

0
ответ дан 17 July 2018 в 20:19
Используйте нотацию $( ... ) вместо обратных ссылок старого стиля `...` для замены команд. Он выглядит лучше, и гнездится лучше. И с меньшей вероятностью будут замешаны кавычки. Отправьте свои переменные. Строка uname -r в kernel_version, /lib/modules/$kernel_version/extra/mISDN_core.ko расширяется до двух слов /lib/modules/uname и -r/extra/mISDN_core.ko, когда вам явно требуется только одно имя файла. Цитируется, "/lib/modules/$kernel_version/extra/mISDN_core.ko" будет расширяться до /lib/modules/uname -r/extra/mISDN_core.ko как одно слово, и вы получите сообщение об ошибке из ln, потому что файл с этим именем не существует. Не обязательно здесь, если вы правильно указали переменные, так как ваши имена файлов начинаются с косой черты, но в целом вы можете захотеть добавить двойную тире --, чтобы сигнализировать о конце опций. С именами файлов, начинающимися с тире, он должен использоваться, чтобы приложение могло определить разницу между опцией и именем файла. В качестве классического примера рассмотрим, что произойдет, если вы запустите rm * в каталоге, содержащем файл с именем -rf. rm -- * предотвращает проблему (как rm ./*).

Не делая (1) или (2), ln действительно видит строку -r/kernel... как один из аргументов, а поскольку GNU ln читает параметры из всех аргументов, а не только первые , он принимает -r как известную опцию, а затем ошибки на /, так как -/ не является опцией, о которой он знает.

Итак, в полном объеме, что вам нужно сделать: [ ! d10] kernel_version=$(uname -r) ln -sf -- "/lib/modules/$kernel_version/extra/mISDN_core.ko" \ "/lib/modules/$kernel_version/kernel/drivers/isdn/mISDN/mISDN_core.ko"

0
ответ дан 23 July 2018 в 21:01

Другие вопросы по тегам:

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