Удаленные файлы команды mv в исходном каталоге и целевом каталоге

Я запустил команду mv для перемещения двух файлов, назовем их file_name_1, file_name_2. Я использовал следующую команду:

mv file_name* /u/projects/lib

Я предполагал, что это переместит оба файла в каталог lib. В конечном итоге файл_имя_2 был перемещен правильно, но имя_файла_1 было удалено из каталога, из которого я его перемещал, и каталога, в который я его перемещал.

Потеря файла не имела большого значения, так как я смогла восстановить файл из резервной копии и не потеряла никакой работы, но мне любопытно, почему это произойдет и каков наилучший способ предотвратить это снова? (На данный момент я просто копирую файлы, а затем удаляю исходный файл, как только я уверен, что он скопирован заново)

3
задан 2 August 2019 в 16:35

1 ответ

Команда mv Удаленные Файлы В Исходном Каталоге и Целевом Каталоге

- Невозможный-. Это не то, как mv работает. - "mv" делает "CP-a", если он на самом деле перемещает файлы (как в через файловые системы) и только если это получает подтверждение, "CP-a" было успешно, он делает удаление. Посмотрите $ info mv для подробного объяснения на этом.

Движущиеся файлы в той же файловой системе используют переименовать вызов, и это - просто изменение метаданных. Сам файл не затронут.

mv file_name*/u/projects/lib

"file_name*" был вероятен, 1 файл и "lib" не существовали. В результате Вы переименовали "file_name*" к "lib" путем исключения "/" в конце "/u/projects/lib". Если бы Вы добавили "/", то команда показала бы ошибку, что каталог "lib" не существовал. Файл переименовывает, который не пересекается, границы файловой системы просто изменение метаданных.

Имел "file_name*" 2 или больше файла, Вы получите ошибку о том, чтобы переходить файлы на тот же файл. И имел "lib", существовавший как каталог, Вы найдете файлы в "lib /"

12
ответ дан 1 December 2019 в 13:03

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

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