Рейтинг:1

Создание папок, когда в именах есть "/" и "'"

флаг in
Cas

Я создаю пути к файлам (и мкдир-ing их) на основе переменных:

mkdir "$root_folder/$title ($год)"

Я столкнулся с ситуацией, когда $title был 11 сентября: В военной комнате президента. / это проблема, потому что mkdir интерпретирует его как путь к папке. Вот и хочу заменить все / с \/ так что mkdir воспринимает это буквально, а не думает, что это путь. ' в имени также дает проблемы. Вот я тоже хочу заменить все ' с \' но это сложнее, чем я думал.

Моя конечная цель - просто сделать папки таким образом, чтобы те / и ' трактуются буквально. Некоторые вещи, которые я уже пробовал:

title=$(echo "$title" | sed -e "s|'|$(echo "\")\'|g")
${название/\//\/}
#---
title=$(echo "$title" | sed -e "s|'|$(echo "\")\'|g" -e "s|/|\/|g")
$название
#---
mkdir "$root_folder/'$title ($year)'"
Рейтинг:10
флаг cn

Одинарные или двойные кавычки не вызовут никаких проблем, если вы всегда правильно цитируете переменные.

$ title=$(кот << END_TITLE
Это «заголовок» с «двумя типами кавычек».
END_TITLE
)

$ объявить -p заголовок
declare -- title="Это \"заголовок\" с "двумя типами кавычек""

$ mkdir "$title" # здесь не нужно пытаться ставить лишние кавычки

$ эхо $?
0

имена файлов может нет содержать / характера, как бы вы ни старались избежать его. Слэш — это разделитель каталогов. Вам придется заменить другого персонажа. Предположим, вы выбираете -:

mkdir "$root_folder/${title//\//-} ($year)"

Это использует bash Расширение параметров оболочки вместо вызова sed.

Jeff Schaller avatar
флаг ru
Другим вариантом может быть подделка с помощью юникода [дробная косая черта U+2044](https://www.compart.com/en/unicode/U+2044) или [дробная косая черта U+2215](https://www .compart.com/en/unicode/U+2215)

Ответить или комментировать

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