Удалите папку с тем же именем, что и переменная среды

Я возился с файлом свойств log4j и случайно создал папку со следующим текстом ${foo} но у меня также есть переменная среды с именем foo которая указывает на папку, поэтому, если я сделаю rm -rf "${foo}" он удаляет папку $foo , указывающую на, а не на папку ${foo} . Как я могу указать, чтобы удалить папку в моем текущем каталоге, используя относительный путь, а не удалять папку, на которую указывает переменная среды?

Вот макет, чтобы лучше понять

$foo = /home/user/bar

${foo} = /home/user/${foo}

One Solution collect form web for “Удалите папку с тем же именем, что и переменная среды”

Строковая интерполяция вызывает это. Существует несколько способов выборочного предотвращения этого. У хакеров хакеров bash есть хорошие примеры , хотя особенности могут отличаться, если вы на самом деле не используете bash.

Короче говоря, вы можете предотвратить интерполяцию с одинарными кавычками или вы можете избежать символов.

 [me:~/work]$ export foo=bar [me:~/work]$ echo $foo bar [me:~/work]$ echo "\${foo} is set to ${foo}" ${foo} is set to bar 
  • Удалите пустые деревья каталогов (удалив как можно больше каталогов, но без файлов)
  • Может ли rm рекурсивно удалять пустые каталоги?
  • Удалять файлы, существующие в источнике с помощью rsync
  • Как удалить файл в корзину в BASH (Linux)
  • Восстановление случайно удаленных файлов
  • Как переопределить rw-r-r-root / wheel для всех файлов в каталоге?
  • Эффект убийства длинной команды rm
  • mv-файл без права на запись в исходный файл
  • Почему мой цикл inotifywait завершается после удаления некоторых подкаталогов?
  • find - exec rm vs -delete
  • Поиск недостающих имен файлов между двумя каталогами в Linux
  • Linux и Unix - лучшая ОС в мире.