Неверный аргумент аргумент при перемещении файлов

Я пытаюсь переместить все файлы в текущем каталоге в каталог GuardDog-CMS. Теперь все файлы фактически идентичны, но файлы в текущем каталоге более современны. Поэтому, когда я делаю переезд, я также хочу убедиться, что он не подсказывает мне «файл уже существует» или что-то в этом роде. Поэтому я пробую следующее:

~/Documents/github/GuardDog-CMS-TEMP/guarddog //current directory
~/Documents/github/GuardDog-CMS               //destination directory
mv -v . ../../GuardDog-CMS

Но это дает мне эту ошибку:

mv: rename . to ../../GuardDog-CMS/.: Invalid argument
1
задан 23 November 2013 в 03:08

2 ответа

Вы получаете неверный аргумент, потому что вы использовали точку (.). Ваша команда пытается переименовать текущий каталог в ../../GuardDog-CMS, но это невозможно, потому что в Unix-подобных системах косые черты не допускаются в именах файлов.

Используйте *, если вы хотите переместить все из текущего каталога:

mv -v * ../../GuardDog-CMS

Если у вас есть скрытые файлы в текущем каталоге, используйте команду shopt -s dotglob nullglob, прежде чем перемещать файлы.

См. Также: Как переместить все файлы (включая скрытые) в одном каталоге в другой?

0
ответ дан 23 November 2013 в 03:08

Я понимаю, что это старый вопрос, но приведенный выше ответ неверен относительно причины проблемы.

Вы можете переименовать папку в имя с косой чертой, если это допустимый путь куда-то.

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

Предложение перемещать содержимое, а не папку работает, или вы можете перейти в родительскую папку и выполнить перемещение оттуда:

cd ..
# Now we are one level up, so one less ../
mv your-original-subdirs-name ../GuardDog-CMS
0
ответ дан 2 December 2020 в 20:22

Другие вопросы по тегам:

Похожие вопросы: