zaLinux.ru

Ошибка команды mv: «Каталог не пуст» – как объединить директории с помощью mv (РЕШЕНО)


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

Но при попытке переместить директорию в папку если она уже существует (чтобы объединить содержимое двух директорий) возникает ошибка «mv: невозможно переместить '... в ...: Каталог не пуст».

Пример команды

sudo mv usr/* /usr/

вызывающей данную ошибку:

mv: невозможно переместить 'usr/bin' в '/usr/bin': Каталог не пуст
mv: невозможно переместить 'usr/sbin' в '/usr/sbin': Каталог не пуст
mv: невозможно переместить 'usr/share' в '/usr/share': Каталог не пуст

Пример этой же ошибки в системах с англоязычной локалью:


[sudo] password for mial:
mv: cannot move 'usr/bin' to '/usr/bin': Directory not empty
mv: cannot move 'usr/sbin' to '/usr/sbin': Directory not empty
mv: cannot move 'usr/share' to '/usr/share': Directory not empty

Команда mv не позволит вам слить две папки, то есть переместить указанную директорию в то место, где уже существует директория с таким же названием. Но нужного вам результата вы можете добиться следующими двумя командами:

cp -R ИСТОЧНИК/* НАЗНАЧЕНИЕ/
rm -R ИСТОЧНИК/

Команда копирования cp с опцией -R скопирует файлы и папки из указанного ИСТОЧНИКА в директорию НАЗНАЧЕНИЕ. А вторая команда удалит скопированные папки файлы, как если бы исходные файлы были перенесены, а не скопированы.

В качестве альтернативы cp вы можете использовать rsync.


Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *