linux下面快速删除大量文件及快速复制大量小文件

遇到要在linux下面删除大量文件夹的情况,如:需要删除100万个文件或者文件夹。这个时候,我们本来的删除命令rm -rf * 就不好使了,因为要等待的太久。所以必须要采取一些非常手段。

先安装rsync.

aptitude install rsync

建立一个空的文件夹

mkdir /root/blank

用rsync删除目标目录

rsync –delete-before -a -H -v –progress –stats /root/blank/ ./cache/

这样我们要删除的 cache目录就会被清空了。

快速复制大量小文件方法

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


如果给你带来帮助,欢迎微信或支付宝扫一扫,赞一下。