11

У меня есть каталог с именем --pycache-- , который мне нужно переместить в __pycache__ . Использование команды mv следующим образом дает мне перечисленные результаты. Как я могу использовать CLI чтобы делать то, что я хочу?

$ mv --pycache-- __pycache__
/bin/mv: unrecognized option '--pycache--/'

2 ответа2

22

Это стандартная проблема с именами файлов / каталогов, начинающимися с менее условных символов. Ваша проблема в том, что mv рассматривает --pycache-- как длинное имя опции (поскольку оно начинается с -, есть также короткие опции, они начинаются с -). Пожалуйста, смотрите man-страницу для getopt для получения подробной информации о длинных и коротких опциях.

Стандартный обходной путь в этой ситуации заключается в использовании пустого двойного тире - перед всем аргументом, который говорит команде (mv в вашем случае, но будет работать с другими, например, cp) прекратить обрабатывать то, что следует, как опции и рассматривать это как аргументы.

Таким образом, ваша команда станет:

$ mv -- --pycache--/ __pycache__

и не подведет.

15

Ваш первый символ - неоднозначен для команды mv (точнее, это однозначно означает, что следует имя опции).

Попробуйте это вместо этого:

mv ./--ppycache-- __pycache__

Источник: linux.about.com

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .