4. 磁盘管理

日程磁盘管理中,我们最常用的有查看当前磁盘使用情况,查看当前目录所占大小,以及打包压缩与解压缩;

4.1. 查看磁盘空间

查看磁盘空间利用大小:

  1. df -h

-h: human缩写,以易读的方式显示结果(即带单位:比如M/G,如果不加这个参数,显示的数字以B为单位)

  1. $df -h
  2. /opt/app/todeav/config#df -h
  3. Filesystem Size Used Avail Use% Mounted on
  4. /dev/mapper/VolGroup00-LogVol00
  5. 2.0G 711M 1.2G 38% /
  6. /dev/mapper/vg1-lv2 20G 3.8G 15G 21% /opt/applog
  7. /dev/mapper/vg1-lv1 20G 13G 5.6G 70% /opt/app

查看当前目录所占空间大小:

  1. du -sh
  • -h 人性化显示
  • -s 递归整个目录的大小
  1. $du -sh
  2. 653M

查看当前目录下所有子文件夹排序后的大小:

  1. for i in `ls`; do du -sh $i; done | sort
  2. 或者:
  3. du -sh `ls` | sort

4.2. 打包/ 压缩

在linux中打包和压缩和分两步来实现的;

打包

打包是将多个文件归并到一个文件:

  1. tar -cvf etc.tar /etc <==仅打包,不压缩!
  • -c :打包选项
  • -v :显示打包进度
  • -f :使用档案文件 注:有的系统中指定参数时不需要在前面加上-,直接使用tar xvf

示例:用tar实现文件夹同步,排除部分文件不同步:

  1. tar --exclude '*.svn' -cvf - /path/to/source | ( cd /path/to/target; tar -xf -)

压缩

  1. $gzip demo.txt

生成 demo.txt.gz

4.3. 解包/解压缩

解包

  1. tar -xvf demo.tar

-x 解包选项

解压后缀为 .tar.gz的文件1. 先解压缩,生成**.tar:

  1. $gunzip demo.tar.gz
  • 解包:
  1. $tar -xvf demo.tar
  2. $bzip2 -d demo.tar.bz2

bz2解压:

  1. tar jxvf demo.tar.bz2

如果tar 不支持j,则同样需要分两步来解包解压缩,使用bzip2来解压,再使用tar解包:

  1. bzip2 -d demo.tar.bz2
  2. tar -xvf demo.tar

-d decompose,解压缩

tar解压参数说明:

  • -z 解压gz文件
  • -j 解压bz2文件
  • -J 解压xz文件

4.4. 总结

查看磁盘空间 df -h

查看目录大小 du -sh

打包 tar -cvf

解包 tar -xvf

压缩 gzip

解压缩 gunzip bzip