Команда mv путает имя каталога с параметром команды
12
У меня есть каталог с именем --pycache--, в который я должен перейти __pycache__. Использование mvкоманды следующим образом, дает мне перечисленные результаты. Как я могу использовать то CLI, что я хочу?
Это стандартная проблема с именами файлов / каталогов, начинающимися с менее условных символов. Ваша проблема в том, что mv рассматривает --pycache-- как длинное имя опции (так как оно начинается с -, есть также короткие опции, они начинаются с -). Пожалуйста, смотрите man-страницу для getopt для получения подробной информации о длинных и коротких опциях.
Стандартный обходной путь в этой ситуации заключается в использовании пустого двойного тире - перед всем аргументом, который говорит команде (mv в вашем случае, но будет работать с другими, например, cp) прекратить обрабатывать то, что следует, как опции и рассматривать это как аргументы.
хороший ответ, но я думаю, что вы имеете в виду - приказывает команде прекратить трактовать то, что следует, как опции, и рассматривать это как аргументы, а не наоборот.
RoundTower
1
Я думаю , что это более портативный препенд ./: mv ./--pycache-- __pycache__.
Кевин
3
@Kevin Это работает, только если аргумент является именем файла.
звездный синий
16
Ваш первый символ -неоднозначен для mvкоманды (точнее, это однозначно означает, что за именем опции следует).
./
:mv ./--pycache-- __pycache__
.Ваш первый символ
-
неоднозначен дляmv
команды (точнее, это однозначно означает, что за именем опции следует).Попробуйте это вместо этого:
Источник: linux.about.com
источник