2016-11-02 2 views
-5

Я хочу скопировать git.sh к файлу ниже/root Тогда я использую это mv git.sh /root/ Является ли mirecle, что все файлы ниже/root были удалены.почему команда mv удаляет весь файл?

Не могли бы вы объяснить, что произойдет после команды? какой mv git.sh /root/* смысл? Не могли бы вы дать мне правильную команду, чтобы скопировать файл в файл ниже/root /?

enter image description here

+1

Не вопрос программирования - попробуйте [su]? –

+0

Используйте «cp» для копирования, «mv» для перемещения. Не используйте подстановочный знак в назначении - он не имеет смысла. * - означает все совпадения. mv/src/*/dest/перемещает все файлы в исходную папку в папку dest. Перемещение - это несколько операций копирования + удалить оригинал. Никаких чудес, как ожидалось. глобигерина –

ответ

1

Команда mv перемещает файлы. Когда файл в месте назначения существует, он будет заменен. Правильная команда для копирования файла - cp. Он используется так же, как mv.

Команда mv git.sh /root/* заменит подстановочный знак * со всеми именами, содержащимися в каталоге. Есть еще несколько случаев:

  1. /корень содержит несколько файлов или каталогов: команда не сможет
  2. /корень содержит один файл: git.sh будет перемещен и заменить файл в каталоге/корневой
  3. /корень пуст: git.sh будет перемещен в git.sh в/корень

mv удалит источник, но cp держит его.

Лучше иметь путь назначения с именем файла, например mv git.sh /root/git.sh. При перемещении нескольких файлов используйте путь назначения только к каталогу без имени файла или подстановочных символов, например mv dir/* /root/. Если вы хотите переместить каталог с подкаталогами, добавьте аргумент -R.

Для получения дополнительной информации используйте man mv или man cp.

Смежные вопросы