Извлеките основное имя файла из URL с помощью удара

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

Я настоятельно рекомендую читать Linux + практическое руководство FreeBSD для получения информации о BSD и разделах Linux прежде, чем сделать что-либо еще. Я объясню, что сделать с fdisk поскольку это ближе к металлу.

Вы можете выполнять действия ниже от Разделенного; я не знаю, ли его поддержка разделов BSD до задачи. Я советую Вам пробовать Разделенный прежде fdisk, поскольку это менее подвержено ошибкам.

Во-первых, из Linux, создайте таблицу разделов BSD. Выполненный fdisk /dev/sda (или какой бы ни диск Вы хотите установить FreeBSD на), и:

  1. Создайте основной раздел стиля ПК (один из /dev/sda1 через /dev/sda4) с n команда. Это будет содержать все из FreeBSD, так измерять его соответственно.
  2. Установите его тип на a5 (FreeBSD) с t команда.
  3. Создайте BSD disklabel на недавно созданном разделе с b команда.
  4. Создайте (с n команда) раздел BSD a это использует часть места, выделенного к FreBSD; обычно a раздел запускает 64 КБ с начала пространства BSD. Это - корневой раздел. Установите его тип (с t команда) к 7 (4.2BSD).
  5. Создайте раздел BSD b это использует часть места, выделенного к FreeBSD. Это будет разделом подкачки; установите его тип на 1 (подкачка). Я думаю, что этот шаг является дополнительным.
  6. Удалите d раздел, что Linux fdisk созданный.
  7. Используйте x команда для создания раздела BSD d это совпадает с разделом, где Вы хранили файл установки FreeBSD.
  8. Рассмотрите свои изменения очень очень тщательно. Если Вы удовлетворены, работать w записать новый BSD disklabel в диск и работать w снова в главном меню для записи таблицы разделов ПК в диск.

Обратите внимание, что это все очень подвержено ошибкам; опечатка могла уничтожить все Ваши данные. Снова, если Разделено может сделать это, использовать Разделенный.

После того как Вы создали разделы BSD, попробуйте метод № 2 или метод № 3 снова.

13
20.07.2016, 13:40
4 ответа

Поскольку слово должно соответствовать строке, которая будет обрезана. Это должно быть похожим:

url="http://www.foo.bar/file.ext"; echo "${url##*/}"

Спасибо derobert, Вы регулировали меня в правильном направлении.

26
27.01.2020, 19:52
  • 1
    Ха, мы понимаем это одновременно. Довольный помочь. –  derobert 11.02.2013, 16:51

Заключить страницу справочника в кавычки:

${parameter##word}
   Remove matching prefix pattern.  The word is expanded to produce
   a pattern just as in pathname expansion.  If the pattern matches
   the  beginning of the value of parameter, […]

/* не соответствует началу, потому что Ваш URL запускается с h нет /.

Тривиальный способ сделать, что Вы ищете (согласно Вашему комментарию) echo "$url" | rev | cut -d / -f 1 | rev. Но конечно, это даст интересные результаты для URL, заканчивающихся в наклонной черте.

Другой способ сделать, что Вы хотите, мог бы состоять в том, чтобы использовать шаблон */ вместо этого.

10
27.01.2020, 19:52
  • 1
    Glad, который Вы дали объяснению того, какой потребности быть сделанным и кавычка из страницы справочника является огромным плюс! Это помогло мне много! Еще раз спасибо! :) –  Fadi 12.07.2017, 17:45

См. также: Расширенный Globbing Bash, хотя в этом случае расширенный шарик не важен.

 shopt -s extglob; url=http://www.foo.bar/file.ext; echo ${url##+(*/)}

Вывод: file.ext

4
27.01.2020, 19:52

basename(1 )también funciona con URL, por lo que simplemente podría hacer:

url=http://www.foo.bar/file.ext; basename $url
9
27.01.2020, 19:52

Теги

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