孤独求学人
linux 快速复制大量小文件主要使用先打包再复制的方法
2015-1-15 杜世伟

(1) 快速复制大量小文件主要使用先打包再复制的方法:
find . -name '*.txt' -print > output.txt

tar --help

点击查看原图

 -T, --files-from F
          get names to extract or create from file F注意这里不要加 -v参数啦,对于大量文件,控制台输出是很浪费时间的...

tar -czf output.tar.gz -T yourfile

 

(2) 快速复制大量小文件方法

      1,在需要对大量小文件进行移动或复制时,用cp、mv都会显得很没有效率,可以用tar先压缩再解压缩的方式。 
  2,在网络环境中传输时,可以再结合nc命令,通过管道和tcp端口进行传输。 
  nc和tar可以用来快速的在两台机器之间传输文件和目录,比ftp和scp要来得简单的多。 
  由于nc是一个超轻量的命令,所以一般busybox都会集成它。当一个linux终端,比如linux pda, 
  通过usblan的方式连接到另一台linux主机的时候,这样的嵌入式终端上一般不会集成ftp server, ssh server 
  这样比较笨重的服务,这个时候, nc可能成为唯一的上传手段。 
  比如将机器A上的mytest目录上传到到机器 B(192.168.0.11)上,只需要: 
  在机器B上,用nc来监听一个端口,随便就好,只要不被占用;并且将收到的数据用tar展开。-l代表监听模式。 
  #nc -l 4444 |tar -C /tmp/dir -zxf - 
  然后,在A上通过nc和 tar发送test目录。使用一致的4444的端口。 
  #tar -zcvf  -  test|nc 192.168.0.11 4444