q528 发表于 2018-6-18 11:16:37

海量文件拷贝(Windows/Linux)

$ rsync -a --stats --dry-run /lib ~/fake  

  
Number of files: 19,375 (reg: 16,015, dir: 3,052, link: 308)
  
Number of created files: 19,375 (reg: 16,015, dir: 3,052, link: 308)
  
Number of deleted files: 0
  
Number of regular files transferred: 16,015
  
Total file size: 830,561,043 bytes    #含普通文件、链接文件的大小,目录大小计数为0
  
Total transferred file size: 830,555,045 bytes    #普通文件大小
  
Literal data: 0 bytes
  
Matched data: 0 bytes
  
File list size: 0
  
File list generation time: 0.001 seconds
  
File list transfer time: 0.000 seconds
  
Total bytes sent: 471,220
  
Total bytes received: 61,277
  

  
sent 471,220 bytesreceived 61,277 bytes1,064,994.00 bytes/sec
  
total size is 830,561,043speedup is 1,559.75 (DRY RUN)
  

  
# 普通文件大小
  
# find 的 print0 参数与 xargs -0 参数是为了避免文件名中的特殊字符
  
$ sudo find /lib -type f -print0 | xargs -0 ls -lad | awk -F ' ' 'BEGIN{sum=0} {sum+=$5} END{printf "%d bytes\n", sum}'
  
830555045 bytes
  

  
# 目录文件大小
  
# 注意目录文件大小与目录一级文件数量有关,可能大于4096(磁盘块大小)
  
# 所以 4096 * 目录个数 <= 目录文件大小之和
  
$ sudo find /lib -type d -print0 | xargs -0 ls -lad | awk -F ' ' 'BEGIN{sum=0} {sum+=$5} END{printf "%d bytes\n", sum}'
  
12656640 bytes
  

  
# 链接文件大小
  
$ sudo find /lib -type l -print0 | xargs -0 ls -lad | awk -F ' ' 'BEGIN{sum=0} {sum+=$5} END{printf "%d bytes\n", sum}'
  
5998 bytes
页: [1]
查看完整版本: 海量文件拷贝(Windows/Linux)