Самый быстрый способ скопировать большую папку в Unix

Я пытаюсь скопировать большую папку размером 1-5 ГБ, которая содержит подкаталоги с файлами в диапазоне от 1 до 35 МБ. Я пытался использовать "cp", но это занимает более 10 минут. Копирование и вставка в окна, кажется, делают работу быстрее.

Я новичок в Unix, и мне было интересно, есть ли более быстрая альтернатива или cp, или способ оптимизировать его работу. Я прочитал о буферах, но я так запутался, как они работают (поэтому я решил не использовать его).

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

PS Не уверен, что мне сказали неправильно, но работа в Unix, как правило, быстрее, чем Windows, верно?

1 ответ

Вы можете попробовать использовать tar или компрессор, как zip или же gzip чтобы поместить всю структуру каталогов в один архивный файл, скопируйте архивный файл и разархивируйте его в месте назначения. Я сомневаюсь, что это сэкономит вам время в целом, но, по крайней мере, шаг копирования будет быстрее.

tar cvf folder.tar /path/to/original/folder
cp folder.tar /path/to/destination
cd /path/to/destination
tar xvf folder.tar

Я думаю, что tar работает быстрее, потому что чтение и запись происходят в разных процессах и не ждут друг друга. У него также есть то преимущество, что он, как правило, умнее сохраняет такие тонкости, как ссылки и разрешения:

tar cf - path | ( cd /my/new/location ; tar xf - )
Другие вопросы по тегам