Учитывая /mnt/source/
и /mnt/target/
, которые являются двумя различными местами / файловыми системами.
mv /mnt/source/dir /mnt/target/
Представляя, что /mnt/source/dir
заполнен каталогами, подкаталогами и файлами, при сбое mv
удаляются ли какие-либо файлы из /mnt/source/dir
?
Можно ли безопасно удалить мою ошибку (rm /mnt/target/dir
) подготовить больше места в файловой системе /mnt/target/
и повторить операцию перемещения?
Или, возможно: Если я не смогу подготовить больше места в файловой системе /mnt/target/
, я должен сделать что-то вроде «отменить», как mv /mnt/target/dir/* /mnt/source/dir/
(с файловым менеджером, чтобы перезаписать целевые файлы), чтобы я мог передумать и вообще не пытаться переместить?
related: Что происходит, когда вы принудительно завершаете операцию каталога `mv` между двумя дисками?
Файлы удалены из/mnt/source/foo?
Только когда команда сообщает об успехе на перемещении.
$ $ mv --version
mv (GNU coreutils) 8.25
и
$ info mv
имеет информацию о том, что происходит:
mv
может переместить любой тип файла от одной файловой системы до другого. До версии 4.0 fileutils,mv
мог переместить только регулярные файлы между файловыми системами. Например, теперьmv
может переместить всю иерархию каталогов включая файлы специального устройства от одного раздела до другого. Это сначала использует часть того же кода, которым это используетсяcp -a
для копирования требуемых каталогов и файлов затем (принимающий копию, за которой следуют), это удаляет оригиналы. Если копия перестала работать, то часть, которая была скопирована в целевой раздел, удалена. Если бы необходимо было скопировать три каталога от одного раздела до другого и копии первого каталога, за которым следуют, но второе не сделало, то первое оставили бы на целевом разделе и втором, и третье оставили бы на исходном разделе.
Следите за 2-й частью полужирным: это сделано на каждом mv
Вы делаете так
mv a b c /dir/
удалит "a" промежуточный "a" и "b".