admin管理员组文章数量:1592916
磁盘管理
1 磁盘设备文件
1 准备一个FAT32格式的U盘(U盘中有 “磁盘挂载测试文件.txt” 和 “disk_test.txt”);
2 /dev/sd* 文件,此类文件是磁盘设备文件,并不能直接访问磁盘,必须要将磁盘挂载到某一个目录下才可以访问;
ding@ding-ubuntu:/dev$ ls sd* // 插上U盘
sda sda1 sdb
ding@ding-ubuntu:/dev$ ls sd* // 拔掉U盘
sda sda1
可以看到,在我的电脑上,sdb是U盘的设备文件;
2 磁盘和目录的容量查询
df:列出文件系统的整体磁盘使用量。主要查看个文件系统的使用量;
ding@ding-ubuntu:/dev$ df
文件系统 1K-块 已用 可用 已用% 挂载点
udev 4038152 0 4038152 0% /dev
tmpfs 812492 2104 810388 1% /run
/dev/sda1 153767376 9971372 135915404 7% /
tmpfs 4062456 0 4062456 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 4062456 0 4062456 0% /sys/fs/cgroup
tmpfs 812488 16 812472 1% /run/user/121
vmhgfs-fuse 500106236 195046568 305059668 40% /mnt/hgfs
tmpfs 812488 44 812444 1% /run/user/1000
// U盘,设备文件是/dev/sdb,挂载点为/media/ding/
/dev/sdb 30285824 64 30285760 1% /media/ding/D0FA-3DBF
du:评估文件系统的磁盘使用量。主要查看单个文件的大小;
ding@ding-ubuntu:/media/ding$ du -sh D0FA-3DBF/ // 查看U盘使用量
64K D0FA-3DBF/ // U盘使用了64KB
3 磁盘的挂载和卸载,分区和格式化
mount 和 umount 命令
ding@ding-ubuntu:~$ mount /dev/sdb /mnt // 挂载设备
ding@ding-ubuntu:~$ umount /dev/sdb // 卸载设备
1 因为ubuntu默认会将U盘挂载到 /media/ding/目录下,所以要先使用 umount 取消挂载;
ding@ding-ubuntu:/dev$ umount -v /dev/sdb // 通过设备名卸载
ding@ding-ubuntu:/dev$ umount -v /media/ding/D0FA-3DBF // 通过挂载点卸载
命令说明:umount -v 表示卸载时显示详细的信息
2 要挂载设备,先要创建挂载点(文件夹);
ding@ding-ubuntu:/media/ding$ sudo mkdir ding_disk
3 重新挂载文件(挂载至 /media/ding/ding_disk/);
ding@ding-ubuntu:/dev$ sudo mount /dev/sdb /media/ding/ding_disk/
4 查看U盘文件及内容;
ding@ding-ubuntu:/media/ding/ding_disk$ ls
disk_test.txt 'System Volume Information' '????????.txt'
ding@ding-ubuntu:/media/ding/ding_disk$ cat *.txt
disk_test
do not use chinese这是一个磁盘挂载测试文件
用于测试挂载是否成功
下面是U盘原始文件:
可以看到,英文文件名正常显示,中文文件名乱码,但文件内容都能正常显示。这肯定有问题,怎么解决?
使用 UTF-8 字符集
命令:ding@ding-ubuntu:~$ sudo mount -o iocharset=utf8 /dev/sdb /media/ding/ding_disk/
// 使用utf8字符集
ding@ding-ubuntu:~$ sudo mount -o iocharset=utf8 /dev/sdb /media/ding/ding_disk/
ding@ding-ubuntu:~$ ls -l /media/ding/ding_disk/
总用量 48
-rwxr-xr-x 1 root root 29 2月 7 2020 disk_test.txt
drwxr-xr-x 2 root root 16384 2月 7 2020 'System Volume Information'
-rwxr-xr-x 1 root root 100 2月 7 2020 磁盘挂载测试文件.txt
4 磁盘分区
fdisk 命令
1 查看所有分区:
ding@ding-ubuntu:~$ sudo fdisk -l
Disk /dev/sda:150 GiB,161061273600 字节,314572800 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xea08d66b
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 * 2048 314570751 314568704 150G 83 Linux
Disk /dev/sdb:28.9 GiB,31029460992 字节,60604416 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x500a0dff
可以看到,/dev/sda 是虚拟机分配给的150GB空间,有一个分区 /dev/sda1 ;/dev/sdb 为U盘设备。
2 创建分区(命令: fdisk + 设备路径):
ding@ding-ubuntu:~$ sudo fdisk /dev/sdb // 使用 fdisk 命令
结果如下:
ding@ding-ubuntu:~$ sudo fdisk /dev/sdb
[sudo] ding 的密码:
欢迎使用 fdisk (util-linux 2.31.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助): m
帮助:
DOS (MBR)
a 开关 可启动 标志
b 编辑嵌套的 BSD 磁盘标签
c 开关 dos 兼容性标志
常规
d 删除分区
F 列出未分区的空闲区
l 列出已知分区类型
n 添加新分区
p 打印分区表
t 更改分区类型
v 检查分区表
i 打印某个分区的相关信息
杂项
m 打印此菜单
u 更改 显示/记录 单位
x 更多功能(仅限专业人员)
脚本
I 从 sfdisk 脚本文件加载磁盘布局
O 将磁盘布局转储为 sfdisk 脚本文件
保存并退出
w 将分区表写入磁盘并退出
q 退出而不保存更改
新建空磁盘标签
g 新建一份 GPT 分区表
G 新建一份空 GPT (IRIX) 分区表
o 新建一份的空 DOS 分区表
s 新建一份空 Sun 分区表
命令(输入 m 获取帮助):
这里可以输入命令:p 打印分区;d 删除分区;n 新建分区;
新建分区过程:
// 输入n 创建新分区
命令(输入 m 获取帮助): n
分区类型
p 主分区 (2个主分区,0个扩展分区,2空闲)
e 扩展分区 (逻辑分区容器)
// 输入p 选择主分区
选择 (默认 p): p
// 选择分区号3,那么就会有1个设备 /dev/sdb3
已选择分区 3
// 第一个扇区编号默认2048
第一个扇区 (2048-60604415, 默认 2048): 2048
// 创建1GB分区,则结束扇区为:1024^3(字节)/512(扇区大小)+2048(起始扇区)=2,099,200
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-28049407, 默认 28049407): 2099200
// 创建成功
创建了一个新分区 3,类型为“Linux”,大小为 1 GiB。
新分区创建完成。查询如下:
命令(输入 m 获取帮助): p
Disk /dev/sdb:28.9 GiB,31029460992 字节,60604416 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x500a0dff
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdb1 1948285285 3650263507 1701978223 811.6G 6e 未知
/dev/sdb2 0 0 0 0B 74 未知
// 1GB新分区 起始扇区:2048 末尾扇区:2099200 大小:1GB
/dev/sdb3 2048 2099200 2097153 1G 83 Linux
/dev/sdb4 28049408 28049848 441 220.5K 0 空
分区设置好后,输入 w ,保存分区表并退出。如下所示:
命令(输入 m 获取帮助): w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
分区创建完成后,需要对分区进行格式化,使用的命令如下:
mkfs -t vfat /dev/sdx
文件压缩
1 压缩文件格式:Linux下常用的压缩扩展名有:.tar、.tar.bz2、.tar.gz,其中 .tar.bz2 和 .tar.gz 这两种格式比较常用,因此需要在Windows上安装 7-ZIP 这个软件。
2 打包文件:
a) 打包成 .tar 格式;
2 将 .tar 文件在进行打包成 .tar.bz2 格式;
3 gzip 压缩工具
命令说明
ding@ding-ubuntu:~/bzip2test$ gzip --help // gizp 压缩文件
Usage: gzip [OPTION]... [FILE]...
Compress or uncompress FILEs (by default, compress FILES in-place).
Mandatory arguments to long options are mandatory for short options too.
-d, --decompress decompress // 解压缩文件
-r, --recursive operate recursively on directories // 目录递归操作
gzip工具负责压缩和解压缩 .gz 格式的压缩包
gzip xxx // 压缩
gzip -d xxx.gz // 解压缩
对文件进行压缩和解压缩:
ding@ding-ubuntu:~/gztest$ ls // gztest目录下有3个文件
a.c b.c c.c
ding@ding-ubuntu:~/gztest$ gzip a.c // 使用gzip压缩a.c
ding@ding-ubuntu:~/gztest$ ls
a.c.gz b.c c.c // 压缩完成,a.c不见了,被压缩成a.c.gz
ding@ding-ubuntu:~/gztest$ gzip -d a.c.gz // 解压缩a.c.gz文件
ding@ding-ubuntu:~/gztest$ ls
a.c b.c c.c // 解压完成
对文件夹进行压缩和解压缩:
ding@ding-ubuntu:~$ gzip -r gztest/ // 对文件夹进行压缩
ding@ding-ubuntu:~$ ls
// 此时目录中没有出现 .gz 结尾的压缩文件
examples.desktop gztest snap test 公共的 模板 软件 视频 图片 文档 下载 音乐 桌面
ding@ding-ubuntu:~$ cd gztest/ // 进入压缩文件夹
ding@ding-ubuntu:~/gztest$ ls
a.c.gz b.c.gz c.c.gz // gzip -r 实际上是对文件夹中的每个文件都进行压缩
// 只是对每个文件进行了压缩,但没有打包成整个的文件
总结:gzip 虽然可以对文件夹进行压缩,但是并不能提供打包的服务,只是对文件夹中的所有文件进行了单独的压缩。
4 bzip2 压缩工具
命令帮助:
ding@ding-ubuntu:~$ bzip2 --help
bzip2, a block-sorting file compressor. Version 1.0.6, 6-Sept-2010.
usage: bzip2 [flags and input files in any order]
-d --decompress force decompression // 强制解压缩
-z --compress force compression // 强制压缩
和 gzip 类似,只是 bzip2 工具负责压缩和解压缩 .bz2 格式的压缩包
bzip2 - z xxx // 压缩
bzip2 -d xxx.gz // 解压缩
bzip2 文件的压缩和解压缩测试:
ding@ding-ubuntu:~/bzip2test$ bzip2 -z a.c // 压缩a.c文件
ding@ding-ubuntu:~/bzip2test$ ls
a.c.bz2 b.c c.c // 压缩完成,a.c不见了,被压缩成a.c.bz2
ding@ding-ubuntu:~/bzip2test$ bzip2 -d a.c.bz2 // 解压缩a.c.bz2文件
ding@ding-ubuntu:~/bzip2test$ ls
a.c b.c c.c // 解压缩完成
可以看到,gzip 和 bzip2 都只能提供压缩服务,并不能打包。
5 tar 打包工具
命令参数:
ding@ding-ubuntu:~$ tar --help
用法: tar [选项...] [FILE]...
GNU ‘tar’
将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还原所需文件。
// 归档就是打包的意思
主操作模式:
-c, --create 创建一个新归档
-x, --extract, --get 从归档中解出文件
-f, --file=ARCHIVE 使用归档文件或 ARCHIVE 设备
-v, --verbose 详细地列出处理的文件
压缩选项:
-j, --bzip2 通过 bzip2 过滤归档
-z, --gzip, --gunzip, --ungzip 通过 gzip 过滤归档
tar 打包文件夹格式:
tar -vcf test.tar test // 将 test 目录打包成 test.tar
tar -vxf test.tar // 解包 test.tar
tar 工具打包和解包测试:
ding@ding-ubuntu:~$ tar -vcf bzip2test.tar bzip2test/ // 将 bzip2test 目录打包
bzip2test/
bzip2test/a.c
bzip2test/b.c
bzip2test/c.c
ding@ding-ubuntu:~$ ls // 生成 bzip2test.tar,只打包不压缩
bzip2test examples.desktop test 模板 视频 文档 音乐
bzip2test.tar snap 公共的 软件 图片 下载 桌面
ding@ding-ubuntu:~$ tar -vxf bzip2test.tar // 解包 bzip2test.tar
上面的 tar 命令只提供了打包和解包的功能,tar 在提供打包和解包的同时使用 gzip / bzip2 进行压缩。
6 对 .tar.bz2 进行压缩和解压缩
tar -jvcf test.tar.bz2 /目录 // 目录压缩成 tar.bz2
tar -jvxf test.tar.bz2 // 解包 tar.bz2
.tar.bz2 压缩和解压测试:
// bzip2test 目录压缩成 bzip2test.tar.bz2
ding@ding-ubuntu:~$ tar -jvcf bzip2test.tar.bz2 bzip2test/
// 这是 -v 列出的文件
bzip2test/
bzip2test/a.c
bzip2test/b.c
bzip2test/c.c
ding@ding-ubuntu:~$ ls // 出现 bzip2test.tar.bz2
bzip2test examples.desktop test 模板 视频 文档 音乐
bzip2test.tar.bz2 snap 公共的 软件 图片 下载 桌面
// 移除 bzip2test 文件夹
ding@ding-ubuntu:~$ rm -rf bzip2test
ding@ding-ubuntu:~$ ls
bzip2test.tar.bz2 examples.desktop snap test 公共的 模板 软件 视频 图片 文档 下载 音乐 桌面
// 解压 bzip2test.tar.bz2
ding@ding-ubuntu:~$ tar -jvxf bzip2test.tar.bz2
bzip2test/
bzip2test/a.c
bzip2test/b.c
bzip2test/c.c
ding@ding-ubuntu:~$ ls // 重新出现了 bzip2test 文件夹
bzip2test examples.desktop test 模板 视频 文档 音乐
bzip2test.tar.bz2 snap 公共的 软件 图片 下载 桌面
7 对 .tar.gz 进行压缩和解压缩
tar -zvcf test.tar.gz /目录 // 目录压缩成 tar.gz
tar -zvxf test.tar.gz // 解包 tar.gz
.tar.gz 压缩和解压测试:
// bzip2test 目录压缩成 bzip2test.tar.gz
ding@ding-ubuntu:~$ tar -zvcf bzip2test.tar.gz bzip2test/
bzip2test/
bzip2test/a.c
bzip2test/b.c
bzip2test/c.c
ding@ding-ubuntu:~$ ls // 压缩成功
bzip2test examples.desktop test 模板 视频 文档 音乐
bzip2test.tar.gz snap 公共的 软件 图片 下载 桌面
ding@ding-ubuntu:~$ rm -rf bzip2test/ // 删除原目录
ding@ding-ubuntu:~$ ls
bzip2test.tar.gz examples.desktop snap test 公共的 模板 软件 视频 图片 文档 下载 音乐 桌面
ding@ding-ubuntu:~$ tar -zvxf bzip2test.tar.gz // 解压缩
bzip2test/
bzip2test/a.c
bzip2test/b.c
bzip2test/c.c
ding@ding-ubuntu:~$ ls // 原目录还原成功
bzip2test examples.desktop test 模板 视频 文档 音乐
bzip2test.tar.gz snap 公共的 软件 图片 下载 桌面
8 其他压缩格式
1 .rar 格式
需要先安装rar:sudo apt-get install rar
rar a xxx.rar xxx // 压缩
rar x xxx.rar // 解压缩
2 .zip 格式
zip -rv xxx.zip xxx // 压缩文件
unzip -v xxx.zip // 解压缩文件
版权声明:本文标题:Linux专栏6:磁盘管理和文件压缩 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1728152487a1147416.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论