Копирование данных

Есть информация, что mc может некорректно копировать большие объемы данных. Возможно, вранье.


 * Копирование файлов с проверкой
 * Работа с файлами в консоли

Локально копировать scp -r <что копировать> localhost:<куда копировать>

http://xgu.ru/wiki/rsync

---

Простое копирование файлов
В принципе, команда ср отлично выполняет свою функцию, за исключением небольшой прихоти -- при копировании больших файлов хотелось бы знать сколько времени осталось до завершения операции (т.е. всего-навсего нужно вывести прогресс операции копирования).

Данную задачу можно решить несколькими способами:

1) Использовать команду scp (потребует ввода пароля пользователя, а также ввода полного пути к каталогам): scp -r <что копировать> localhost:<куда копировать>

2) Использовать команду rsync с ключом --progress: rsync --progress -av <что копировать> <куда копировать>

При копировании каталогов (а не файлов) в последнем случае следует обратить внимание на знак "/" замыкающий имя каталога-источника, т.к. команда rsync будет интерпретировать результат по-разному:

rsync --progress -av <каталог-источник> <каталог-назначения/> rsync --progress -av <каталог-источник/> <каталог-назначения/>

Наличие завершающих слешей "/" обязательно, иначе результат копирования будет содержать корневую папку <каталог-источник> внутри <каталога-назначения>.

-

Копирование файла а из dir1 в dir2: scp /home/dir1/a   localhost:/home/dir2/

Копирование каталога из dir1 в dir2: scp -r  /home/dir1/     localhost:/home/dir2/

Копирование файла а из dir1 в dir2: rsync --progress -av  ~/dir1/a  ~/dir2/

Копирование файлов из dir1 в dir2: rsync --progress -av  ~/dir1/    ~/dir2/

Копирование самой директории dir1 (со всем содержимым) в dir2: rsync --progress -av  ~/dir1     ~/dir2/

Синхронизация каталогов
Точная копия каталогов (удаление всех файлов из dir2, которых нет в dir1): rsync --delete -av  ~/dir1/  ~/dir2/

Исключить каталоги, синхронизация которых не требуется (например, каталог dir3 находящийся в dir1 при копировании последнего в dir2 будет пропущен): rsync -av  ~/dir1/  --exclude="./~dir3/"   ~/dir2/

Двусторонняя синхронизация (объединить содержимое dir1 и dir2) rsync -av ~/dir1/ ~/dir2/   &&   rsync -av  ~/dir2/  ~/dir1/