Мой вопрос в том, что я пытаюсь переименовать файл с именем 12F-XYZ.pdf
в 13F-XYX_ABX.pdf
.
Теперь возникает проблема, которая заключается в том, что оба дефиса в оригинальном и требуемом именах имеют дефисы. Я знаю, что для пробелов мы используем \
, чтобы преодолеть проблему, но что мы можем сделать в случае дефиса или любого другого символа, который может вызвать проблему, как это происходит не только с командой rename, но и с любой другой командой.
Поскольку 'David Foerster' указал, что дефис (-) не рассматривает особенно оболочка. Таким образом, насколько Ваш пример обеспокоен, что можно просто сделать:
mv 12F-XYZ.pdf 13F-XYX_ABX.pdf
, Но если у Вас есть пространство или литеральный символ ESC (обратная косая черта) или кто-либо другой, которого нужно оставить, можно выйти из тех или с символом ESC т.е. \
или поставить целое имя в кавычках ''
так, чтобы содержание в кавычках рассматривали буквально.
Вот пример:
mv 12F-XYZ.pdf 50M -XYZ.pdf ##Wrong
mv 12F-XYZ.pdf 50M\ -XYZ.pdf ##Right
mv 12F-XYZ.pdf '50M -XYZ.pdf' ##Right
эмпирическое правило А должно было бы выйти из него в то время как в сомнении. Это было бы очень хорошим чтением для Вас.
РЕДАКТИРОВАНИЕ: , Поскольку 'muru' указал, что у Вас будет проблема в случае, если ведущий дефис. В этом случае можно использовать любое из следующего:
mv -- foo.bar -foo.bar
mv foo.bar ./-foo.bar
Эти --
указывает на конец переключателя для предыдущей команды (в этом случае mv
). Также обратите внимание, что не все поддержки команд --
, таким образом, Вы лучше использовали бы вторую опцию (./-foo.bar
).