Д'ух. Оказывается, перезагрузка сеанса пользователя помогла.
Группаи id также не отображали новые группы, пока я снова не вошел в систему.
У вас есть петля
for filename in *'old Name'*; do
echo "$filename"
done
и вы хотите изменить шаблон *'old Name'*
так, чтобы строка old Name
сохранялась в переменной.
Это можно сделать с помощью
name='old Name'
for filename in *"$name"*; do
echo "$filename"
done
или просто
printf '%s\n' *"$name"*
Чтобы шаблон работал правильно, его части, содержащие подстановочные знаки имени файла, должны оставаться без кавычек. Поэтому символы *
не могут быть частью значения переменной name
, если мы заключаем $name
в кавычки. Если бы это было так, то они использовались бы как буквальные символы *
, а не как подстановочные знаки.
В то же время мы не хотим использовать name
переменную без кавычек , так как это разделит ее на два слова в пробеле, и вы получите два отдельных слова. узоры.
Вот почему установка name
в строку old Name
и использование *"$name"*
в цикле, как показано выше, вероятно, будет лучшим решением.