Вы можете использовать \
для экранирования любого одиночного символа, включая (
и )
, как вы уже делали с пробелами. Хотя это работает, это может быть громоздко, если у вас есть много символов / пробелов для выхода.
Более быстрой альтернативой является использование одинарных кавычек('
)для экранирования всей строки , т. е. что-то вроде:
rm -rf '10.2 (14C92)'
Пожалуйста, имейте в виду, что '
экранирует все , поэтому используйте его с осторожностью, если вам нужно, например, раскрытие переменной внутри кавычек. Тем не менее, использование двойных кавычек работает для экранирования пробелов и скобок, а также:
rm -rf "10.2 (14C92)"
Кроме того, исходя из вашего вопроса, вы пытаетесь использовать rmdir
. rmdir
работает только для пустых каталогов и не имеет флагов -r
и/или -f
:
NAME rmdir - remove empty directories
SYNOPSIS rmdir [OPTION]... DIRECTORY...
DESCRIPTION Remove the DIRECTORY(ies), if they are empty.
Вы можете использовать rm -rf
.
Если 10.2 (14C92)
действительно пусто, простой
rmdir '10.2 (14C92)'
подойдет.
Экранирование выполняется самим bash
, поэтому оно работает для любой команды. Другими словами, bash
решает , что передать команде, основываясь на собственных правилах синтаксического анализа, затем команда действует на аргументы после того, какbash
их проанализировал.
Сzsh
:
autoload zmv
zmv -n '(*) - (*) (\(<->\))(#q/)' '$1 $3 $2'
Удалите-n
(сухой -сухой ход ), когда они будут удовлетворены.