Скопируйте каталог на внешний жесткий диск

Я пытаюсь скопировать каталог на внешний жесткий диск. Я установил устройство, а затем набрал: cd root tar -cf - * | (cd /mnt ; tar -xpf -) cd root tar -cf - * | (cd /mnt ; tar -xpf -)

Я получил это сообщение об ошибке: «трусливо отказываясь создавать пустой архив»,

Когда я делаю ls в том же корневом каталоге – он не пуст вообще – все мои необходимые файлы есть.

Почему это происходит?

  • Создание терминального приложения из сценария оболочки
  • Копирование установки linux из не-RAID / x86 в RAID / x86-64
  • Где мои потерянные работы cron?
  • AIX NFS mount.nfs: доступ запрещен сервером при установке
  • Могу ли я использовать apt-get для обновления до последней версии Nagios?
  • Есть ли какой-то пароль по умолчанию для нового пользователя в Linux?
  • Моноширинные шрифты Google Chrome трудно читать
  • Есть ли разница в использовании ресурсов / потребностях между версиями Ubuntu и Debian Linux Mint (под тем же DE)?
  • 4 Solutions collect form web for “Скопируйте каталог на внешний жесткий диск”

    если вы хотите скопировать корневую файловую систему и беспокоиться о специальных файлах и устройствах, лучший способ:

    • сначала подключить / в поддире, используя параметр привязки для монтирования, таким образом вам не придется беспокоиться о / proc, / dev, / sys и других смонтированных файловых системах
    • затем используйте команду, которая знает, как обрабатывать специальные файлы, такие как cp -a или rsync -a

    скажем, вы установили внешний диск под / mnt / external

     mkdir /mnt/root mount / /mnt/root -o bind cp -a /mnt/root/* /mnt/external/ 

    или

     rsync -aP /mnt/root/ /mnt/external/ 

    или (если вам так нравятся смолы, кстати, худший вариант)

     tar -C /mnt/root -cf - ./ | tar -C /mnt/external -xpf - 

    добавьте -v к любому из вышеперечисленных слов для подробного вывода, но это немного замедлит процесс

    Почему бы вам просто не использовать cp -pr source destination ?

    Так или иначе:

     cd ~/tmp/source/;tar -cpf - * | (cd ~/tmp/destination;tar -xpf -) 

    работает просто отлично.

    Я считаю, что лучше всего копировать целые структуры каталогов – rsync

     # rsync -avP /path/to/source/* /path/to/destination/ 

    Это также имеет то преимущество, что вы можете сделать это до или из удаленного каталога через ssh.

    Используйте утилиту POSIX PAX .

    В отличие от cp, pax работает одинаково для каждой системы . С помощью pax вы всегда можете безопасно копировать файловые системы со специальными файлами, такими как узлы устройств.

    Чтобы скопировать одну файловую систему / mnt / foo в / mnt / bar, сохранение разрешений, временных меток и специальных файлов:

     # cd /mnt/foo pax -rw -pe -X . /mnt/bar/ 
    Linux и Unix - лучшая ОС в мире.