在 unix 中复制大文件夹的最快方法

Fastest way to copy a large folder in unix

我正在尝试复制一个大约 1-5gb 的大文件夹,其中包含包含 1kb-35mbs 文件的子目录。我尝试使用 'cp' 但它需要 10 多分钟。在 windows 中复制和粘贴似乎更快。

我是 unix 的新手,我想知道是否有更快的替代方案或 cp,或优化其工作方式的方法。我已经阅读了缓冲区,但我对它们的工作方式感到困惑(所以我决定不使用它)。

我想做什么: 我需要将文件从我的H盘传输到其他地方的网络驱动器(也从网络驱动器中删除文件以便可以将新文件复制到它)。这是我正在从事的一项非常直接的任务。只需要大约二十年就可以完成。

P.S。不确定我是否被告知错误,但在 unix 中工作通常比 windows 快,对吗?

您可以尝试使用 tarzipgzip 之类的压缩器将整个目录结构放入单个存档文件中,复制存档文件,然后在以下位置取消存档目的地。我怀疑这会为您节省总体时间,但至少复制步骤会更快。

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

-c 创建
-v 详细
-f 文件名是...(用户放在后面)

我认为 tar 似乎工作得更快,因为读取和写入发生在不同的进程中,不会相互等待。它还有一个好处,就是在保留链接和权限等细节方面往往更聪明:

tar cf - path | ( cd /my/new/location ; tar xf - )