存储 - 文件格式,文件系统
2025-03-18 17:29:47 0 举报
AI智能生成
这是一个关于存储与文件格式的描述:核心内容包括数字存储的基础原理、常见的存储设备类型以及各类文件格式的特点和用途。 在数字存储中,使用不同的文件系统,以便在各种存储介质中保存,同时使用不同的硬件如硬盘、固态硬盘、光盘等。 对文件格式而言,它们是规定数据如何存储和解释的结构化方法。例如,常见的文本文件格式包括.txt和.docx,分别用于纯文本和复杂的格式化文本。图片文件格式如.jpg和.png,前者采用有损压缩技术,适合网络传输;后者则是无损压缩,适用于需要保持图像完整性的场景。此外,音视频文件格式如.mp4和.flac,前者适合视频,后者则是高质量的无损音频格式。理解并掌握各种存储设备和文件格式,有助于我们更好地管理数字信息和设备使用。
作者其他创作
大纲/内容
系统的文件类型概述
按操作系统分类
Windows系统文件类型
文档文件(.txt)
图片文件(.jpg, .png)
音频文件(.mp3, .wav)
视频文件(.mkv, .mp4)
配置文件(.ini)
可执行文件(.exe)
1. 文件格式 PE/COFF
Windows的.exe文件遵循**PE(Portable Executable)**格式标准,其核心结构包括:
DOS头(DOS Header):兼容旧版DOS系统的存根程序。
PE头(PE Header):定义文件类型(如32/64位)、入口点地址(Entry Point)、代码段和数据段的内存布局。
节表(Section Table):描述代码(.text)、数据(.data)、资源(.rsrc)等区块的偏移量和属性。
导入表(Import Table):声明依赖的动态链接库(DLL)及函数(如kernel32.dll)。
PE头(PE Header):定义文件类型(如32/64位)、入口点地址(Entry Point)、代码段和数据段的内存布局。
节表(Section Table):描述代码(.text)、数据(.data)、资源(.rsrc)等区块的偏移量和属性。
导入表(Import Table):声明依赖的动态链接库(DLL)及函数(如kernel32.dll)。
2. 运行机制
加载器(Loader):Windows内核将PE文件映射到内存,解析依赖项(DLL),并跳转到入口点(Entry Point)执行。
依赖绑定:EXE文件需要与系统API(如Win32 API)和C运行时库(MSVCRT)动态链接。
二进制文件
二进制文件很多,以python程序编译的而言
Python标准库包含两种模块:
纯Python模块(如os.py、json/__init__.py)
以.py文件形式存在,运行时由解释器动态编译为字节码(.pyc)。
以.py文件形式存在,运行时由解释器动态编译为字节码(.pyc)。
C扩展模块(如_socket.c、_ssl.c)
用C/C++编写,需预先编译为平台相关的二进制文件(如Windows的.pyd,Linux的.so)。
用C/C++编写,需预先编译为平台相关的二进制文件(如Windows的.pyd,Linux的.so)。
Windows的可执行文件是PE格式,而Linux是ELF格式
Windows(PE格式)和Linux(ELF格式)的二进制文件存在显著差异
两种格式的核心结构,比如头部、节表、入口点
还要提到动态链接库的不同,Windows用DLL,Linux用.so
不同系统的二进制文件不能兼容。需要强调操作系统内核处理可执行文件的方式不同
macOS系统文件类型
应用程序包(.app, .dmg)
Pages文档(.pages)
图片文件(.jpeg, .tiff)
视频文件(.mov, .mp4)
Linux系统文件类型
Shell脚本(.sh)
配置文件(.conf)
源代码文件(.c, .cpp)
一切皆为文档(vim, nano)
Vim 是一个功能强大的文本编辑器,支持多种模式(如插入模式、正常模式、可视模式等)
启动 Vim:
vim filename
基本模式:
正常模式: 默认模式,可以通过按键进入其他模式。
插入模式: 按 i 进入插入模式,可以输入文本。
命令模式: 按 Esc 返回正常模式,然后按 : 进入命令模式。
常用命令:
保存并退出: :wq
只退出不保存: :q!
vim filename
基本模式:
正常模式: 默认模式,可以通过按键进入其他模式。
插入模式: 按 i 进入插入模式,可以输入文本。
命令模式: 按 Esc 返回正常模式,然后按 : 进入命令模式。
常用命令:
保存并退出: :wq
只退出不保存: :q!
快捷键:
1. 移动光标
0:移动到当前行的开头
$:移动到当前行的末尾
^:移动到当前行的第一个非空格字符
j:下移一行
k:上移一行
0:移动到当前行的开头
$:移动到当前行的末尾
^:移动到当前行的第一个非空格字符
j:下移一行
k:上移一行
2. 删除和替换
x:删除光标所在位置的字符
X:删除光标左边的字符
dd:删除当前行
D:删除光标到行末的内容
x:删除光标所在位置的字符
X:删除光标左边的字符
dd:删除当前行
D:删除光标到行末的内容
3. 复制和粘贴
y:开始复制操作(需配合移动快捷键,如 yw 复制一个单词)
p:粘贴复制的内容(在光标后)
P:粘贴复制的内容(在光标前)
y:开始复制操作(需配合移动快捷键,如 yw 复制一个单词)
p:粘贴复制的内容(在光标后)
P:粘贴复制的内容(在光标前)
4. 撤销和重做
u:撤销上一次操作
Ctrl + r:重做上一次操作
u:撤销上一次操作
Ctrl + r:重做上一次操作
5. 编辑操作
o:在当前行下方插入新行并进入插入模式
O:在当前行上方插入新行并进入插入模式
o:在当前行下方插入新行并进入插入模式
O:在当前行上方插入新行并进入插入模式
6. 搜索
在命令模式下,按 / pattern,输入要搜索的文本,然后按 Enter。
n:查找下一个匹配项
N:查找上一个匹配项
在命令模式下,按 / pattern,输入要搜索的文本,然后按 Enter。
n:查找下一个匹配项
N:查找上一个匹配项
Nano 是一个简单易用的文本编辑器,特别适合初学者。它在界面底部提供了常用命令的快捷键提示。
启动 Nano:
nano filename
基本操作:
插入文本: 直接开始输入即可。
Ctrl + C:显示当前行号和列号。
保存文件: 按 Ctrl + O,然后按 Enter 确认。
退出编辑器: 按 Ctrl + X,如果有未保存的更改,会提示是否保存。
nano filename
基本操作:
插入文本: 直接开始输入即可。
Ctrl + C:显示当前行号和列号。
保存文件: 按 Ctrl + O,然后按 Enter 确认。
退出编辑器: 按 Ctrl + X,如果有未保存的更改,会提示是否保存。
快捷键:
搜索和替换:
搜索文本: 按 Ctrl + W,输入搜索内容。
替换文本: 按 Ctrl + \,输入旧文本和新文本。
搜索文本: 按 Ctrl + W,输入搜索内容。
替换文本: 按 Ctrl + \,输入旧文本和新文本。
Ctrl + _(下划线):跳转到行首。
Ctrl + *(星号):跳转到行尾。
Ctrl + A:移动到文件的开头。
Ctrl + E:移动到文件的末尾。
Ctrl + *(星号):跳转到行尾。
Ctrl + A:移动到文件的开头。
Ctrl + E:移动到文件的末尾。
其他功能:
语法高亮: 可以通过配置文件启用。
行号显示: 使用 -l 参数启动 Nano 时显示行号,例如 nano -l filename。
语法高亮: 可以通过配置文件启用。
行号显示: 使用 -l 参数启动 Nano 时显示行号,例如 nano -l filename。
打包文件,压缩文件(.tar, .gz)
创建 .tar 打包文件
tar -cvf output.tar file1 file2 directory/
解包 .tar 文件
tar -xvf input.tar
tar -xvf input.tar
解包 archive.tar 到指定目录 /path/to/destination
tar -xvf archive.tar -C /path/to/destination
tar -xvf archive.tar -C /path/to/destination
解包 某一个文件 到指定目录下
tar -xvf archive.tar -C /path/to/destination path/to/file.txt
tar -xvf archive.tar -C /path/to/destination path/to/file.txt
创建 .tar.gz (使用 gzip 压缩)
tar -czvf output.tar.gz file1 file2 directory/
解压 .tar.gz 或 .tgz 文件
tar -xzvf input.archivetar.gz
tar -xzvf input.archivetar.gz
打包时排除某些文件或目录
tar --exclude='*.log' -czvf archive.tar.gz *
tar --exclude='*.log' -czvf archive.tar.gz *
列出 archive.tar.gz 中的文件内容而不解压
tar -tzf archive.tar.gz
tar -tzf archive.tar.gz
创建 .tar.bz2 文件(使用 bzip2 压缩)
tar -cjvf output.tar.bz2 file1 file2 directory/
解压 .tar.bz2 文件
tar -xjvf input.tar.bz2
tar -xjvf input.tar.bz2
按文件功能分类
文档类文件
文本文件(.txt)
文档文件(.doc, docx)
PDF文件(.pdf)
演示文稿(.ppt, .pptx)
图像类文件
SVG矢量图(.svg)
基于数学公式和几何形状(如点、线、曲线、多边形等)来描述图像的。它不依赖于像素,而是通过定义图形的几何属性来生成图像。
SVG:可缩放矢量图形格式,基于 XML,适合绘制图形和图标,放大不失真。
文件大小较小:由于矢量图只存储几何信息和颜色信息,文件体积通常比同等质量的位图要小得多。
适合简单图形和线条图:矢量图非常适合用于标志、图标、字体、插画等不需要复杂色彩过渡的图像。
位图文件(.bmp)
位图是一种基于像素的图像格式,它通过将图像划分为许多小的点(像素),每个像素都有特定的颜色值来表示图像。
JPEG/JPG压缩图
JPEG/JPG:压缩图像格式,适用于照片和复杂图形
压缩比高
但有损压缩
PNG无损压缩图像
PNG:无损压缩图像格式,支持透明背景
适合网页图标
屏幕截图
TIFF(Tagged Image File Format)
支持多种颜色深度和压缩方法,适用于存储高质量的图像。
基本特点
支持多种颜色深度:从1位到48位,甚至64位浮点数,适合不同需求。
灵活性:支持多种压缩算法和颜色模式。
支持多种颜色深度:从1位到48位,甚至64位浮点数,适合不同需求。
灵活性:支持多种压缩算法和颜色模式。
常见用途
摄影:存储高质量的数码照片。
设计:用于广告、印刷等专业领域。
存档:作为长期存储格式,确保图像质量不丢失。
摄影:存储高质量的数码照片。
设计:用于广告、印刷等专业领域。
存档:作为长期存储格式,确保图像质量不丢失。
GIF动画(.gif)
GIF:支持动画和简单颜色,常用于网页动图。
RAW图像(.raw)
RAW并不是一种通用的图像格式,而是一类由相机传感器直接捕获的数据格式。不同品牌的相机有不同的RAW格式(如佳能的CR2、尼康的NEF等)。
RAW文件包含了未经处理的原始图像数据,保留了尽可能多的信息。
特点:
未压缩或轻微压缩:RAW文件通常是无损的,或者使用无损压缩技术,确保图像质量不会因压缩而受损。
高动态范围:RAW文件包含更多的亮度和色彩信息,允许在后期处理中调整曝光、白平衡等参数,获得更好的效果。
大文件体积:由于RAW文件保存了大量的原始数据,文件体积通常比JPEG等格式要大得多。
高动态范围:RAW文件包含更多的亮度和色彩信息,允许在后期处理中调整曝光、白平衡等参数,获得更好的效果。
大文件体积:由于RAW文件保存了大量的原始数据,文件体积通常比JPEG等格式要大得多。
优点:
更高的灵活性:RAW文件可以在后期处理中进行更多的调整,比如修正曝光不足或过度曝光等问题。
更真实的色彩还原:RAW文件保留了更多的色彩信息,能够更好地还原拍摄时的实际场景。
更真实的色彩还原:RAW文件保留了更多的色彩信息,能够更好地还原拍摄时的实际场景。
缺点
不同品牌的RAW格式可能不被所有软件支持,需要使用特定的解码器或软件。
RW1
RW2
CR2
windows11上打开有兼容性问题
CR3
需要后期处理:RAW文件不能直接用于打印或发布,必须经过图像处理软件(如Adobe Lightroom、Photoshop等)进行调整和转换为其他格式(如JPEG、TIFF)。
音频类文件
音频文件(.mp3, .wav)
MIDI文件(.mid)
FLAC无损音频(.flac)
AAC音频(.aac)
WAV波形音频(.wav)
视频类文件
AVI视频(.avi)
MKV视频(.mkv)
FLV视频(.flv)
RMVB视频(.rmvb)
文件格式的转换与兼容性
转换工具介绍
在线转换工具
Convertio
Online-Convert
桌面转换软件
Adobe Acrobat DC
Format Factory
文件格式兼容性
跨平台兼容性
Windows与macOS间的兼容
Linux与其他系统的兼容
软件间的兼容性
Office与WPS的兼容
Photoshop与GIMP的兼容
存储介质与文件管理
存储介质类型
硬盘驱动器(HDD)
机械硬盘
混合硬盘
固态硬盘(SSD)
SATA SSD
NVMe SSD
云存储服务
个人云存储
百度云盘
腾讯微云
企业云存储
AWS S3
阿里云OSS
文件管理系统
Windows资源管理器
文件搜索
文件排序与分组
macOS Finder
标签管理
Quick Look预览
Linux文件管理
Nautilus(GNOME)
Dolphin(KDE)
文件系统格式
FAT32(File Allocation Table 32)
FAT32格式通常用于移动设备和存储设备,如U盘、SD卡等。几乎所有操作系统都支持FAT32格式。
是一种较为古老的文件系统格式
支持最大单个文件4GB,最大磁盘容量为2TB。
FAT16:
几乎不再使用,除非你有非常特殊的需求。
单个文件最大为4GB,已经过时。
EXT4:
推荐用于Linux系统分区(如根目录 / 和其他Linux相关分区)。
推荐配置
根目录 /:使用 EXT4 文件系统。
交换分区(swap):通常不需要选择文件系统类型,因为它是专门用于虚拟内存的。
/home 或其他数据分区**:如果你希望这些分区可以在Windows和Linux之间共享,可以选择 FAT32 或 NTFS。但如果只是为了Linux使用,建议也使用 EXT4。
根目录 /:使用 EXT4 文件系统。
交换分区(swap):通常不需要选择文件系统类型,因为它是专门用于虚拟内存的。
/home 或其他数据分区**:如果你希望这些分区可以在Windows和Linux之间共享,可以选择 FAT32 或 NTFS。但如果只是为了Linux使用,建议也使用 EXT4。
是目前最常用和推荐的Linux文件系统,具有良好的性能、可靠性和兼容性。
支持日志功能,减少了文件系统损坏的风险,并且能加快崩溃后的恢复速度。
EXT3:
类似于EXT4,但较为老旧。
如果你的硬件或软件环境对最新的EXT4特性不支持,可以选择EXT3。不过一般情况下,优先选择EXT4。
NTFS(New Technology File System)
NTFS格式支持文件加密、压缩、权限控制等功能。Windows操作系统完全支持NTFS格式,其他操作系统 macOS, Linux 可以读取 NTFS格式的磁盘。
是Windows操作系统中常用的文件系统格式
支持单个文件大小达到16TB,最大磁盘容量为256TB。
exFAT(Extended File Allocation Table)
exFAT格式通常用于大容量移动硬盘、闪存卡等设备。Windows、macOS 和 Linux 等操作系统都支持exFAT格式。
一种针对移动设备和闪存存储设备设计的文件系统格式
支持单个文件大小达到16EB,最大磁盘容量为128PB。
HFS+(Hierarchical File System Plus)
HFS+格式在macOS系统中得到完全支持,但在Windows和Linux系统中需要安装额外的驱动程序才能读取HFS+格式的磁盘。
是苹果公司开发的文件系统格式,用于Mac OS X操作系统。
HFS+支持单个文件大小达到8EB,最大磁盘容量为8EB。
分配单元大小
是指在磁盘上分配存储空间的最小单位。选择合适的单元大小可以影响磁盘的性能和空间利用率。
原理:分配单元大小的选择会影响文件系统的存储效率。
对于大容量的磁盘,可以选择较大的单元大小,以减少碎片化;
对于小容量的磁盘,可以选择较小的单元大小,以提高空间利用率。常见的分配单元大小有4KB、8KB、16KB等。
应用
在安装Ubuntu时,选择合适的文件系统格式非常重要。
格式化Disk硬盘时,选择合适的文件系统格式,对兼容性和存储有重要影响
Linux磁盘管理
查看磁盘
lsblk
结构,总结
fdisk -l
详情
查看磁盘空间
df -h
df 默认以 K 计算大小
挂载磁盘
格式化磁盘
mkfs.ext4 /dev/sdb
挂载到目录
mount /dev/sdb /data
自动挂载/models案例
/etc/fstab 是 Linux 系统中的一个重要配置文件,定义系统启动时挂载
自动挂载案例
迁移docker到挂载盘案例
sudo rsync -aP /var/lib/docker /data/docker 来把数据复制到目标挂挂载位置/data/docker
迁移数据案例
查看磁盘分区
parted /dev/sdc print
修改磁盘分区大小,扩容
parted /dev/sdc
Windows磁盘管理
Windows 的磁盘管理功能提供了全面的工具,允许用户管理和维护硬盘驱动器及其他存储设备。
启动磁盘管理
方法1: 右键点击“开始”按钮(或按 Win + X),选择“磁盘管理”。
方法2: 在搜索栏中输入“磁盘管理”,然后从结果中打开。
方法2: 在搜索栏中输入“磁盘管理”,然后从结果中打开。
界面介绍
磁盘列表: 显示连接到系统的所有物理磁盘及其编号。
分区视图: 展示各磁盘上的现有分区、大小、文件系统类型、是否被分配了盘符等信息。
操作面板: 包括各种可用命令,如新建简单卷、扩展卷、删除卷、格式化等。
分区视图: 展示各磁盘上的现有分区、大小、文件系统类型、是否被分配了盘符等信息。
操作面板: 包括各种可用命令,如新建简单卷、扩展卷、删除卷、格式化等。
通过磁盘管理,你可以创建、删除、扩展或缩小分区,格式化卷,更改驱动器号和路径,以及将磁盘设置为活动状态等。
新建分区(创建新卷)
1. 准备工作
确保有足够的未分配空间来创建新的分区。
备份重要数据,因为在调整分区时可能会丢失数据。
确保有足够的未分配空间来创建新的分区。
备份重要数据,因为在调整分区时可能会丢失数据。
2. 步骤
在未分配的空间上右键单击。
选择“新建简单卷”,会弹出“新建简单卷向导”。按照提示逐步完成以下内容:
指定简单卷大小: 根据需求设定分区容量。注意剩余的未分配空间。
指派盘符或路径: 给分区分配一个字母标识(例如 D:、E:)或者挂载到已存在的空闲文件夹下。
格式化卷: 决定是否对新分区进行快速格式化(强烈建议选择 NTFS 文件系统;exFAT 或 FAT32 则适用于 USB 移动存储设备)。
在未分配的空间上右键单击。
选择“新建简单卷”,会弹出“新建简单卷向导”。按照提示逐步完成以下内容:
指定简单卷大小: 根据需求设定分区容量。注意剩余的未分配空间。
指派盘符或路径: 给分区分配一个字母标识(例如 D:、E:)或者挂载到已存在的空闲文件夹下。
格式化卷: 决定是否对新分区进行快速格式化(强烈建议选择 NTFS 文件系统;exFAT 或 FAT32 则适用于 USB 移动存储设备)。
如果需要更高级别的安全性和性能,请选择完整格式化。
FAT32比较老了,参考上述文件格式介绍
新建分区时需要注意的事项及优化
1. 考虑分区大小
分区过小可能导致空间不足影响应用部署与资料保存,过大则浪费资源。
对于操作系统盘(通常是 C: 盘),通常建议预留至少 50GB 的空间,具体取决于安装的应用数量及系统版本。
数据盘应根据实际需要灵活配置,留有一定余量以备不时之需。
分区过小可能导致空间不足影响应用部署与资料保存,过大则浪费资源。
对于操作系统盘(通常是 C: 盘),通常建议预留至少 50GB 的空间,具体取决于安装的应用数量及系统版本。
数据盘应根据实际需要灵活配置,留有一定余量以备不时之需。
2. 文件系统选择
NTFS (New Technology File System): 是 Windows 默认的高级文件系统,具有更好的性能、安全性、稳定性和兼容性,支持更大的文件和分区。
exFAT: 跨平台兼容性好,尤其适合外部硬盘和 U 盘。
FAT32: 广泛兼容但存在文件大小限制(4GB),主要用于小型存储介质。
NTFS (New Technology File System): 是 Windows 默认的高级文件系统,具有更好的性能、安全性、稳定性和兼容性,支持更大的文件和分区。
exFAT: 跨平台兼容性好,尤其适合外部硬盘和 U 盘。
FAT32: 广泛兼容但存在文件大小限制(4GB),主要用于小型存储介质。
3. 磁盘对齐
对齐磁盘分区可以提高读写速度并延长 SSD 寿命。
默认情况下,Windows 创建的新分区已经自动正确对齐,但对于老旧机器上的 MBR 分区表结构可能仍需手动确认。
对齐磁盘分区可以提高读写速度并延长 SSD 寿命。
默认情况下,Windows 创建的新分区已经自动正确对齐,但对于老旧机器上的 MBR 分区表结构可能仍需手动确认。
4. GPT vs MBR
MBR (Master Boot Record):传统方式,最多只能划分四个主分区(或三个主分区加一个扩展分区包含多个逻辑分区),且单个分区最大仅支持 2TB。
GPT (GUID Partition Table):较新的标准,理论上可容纳无限数量的分区,单个分区能超过 2TB,更利于大容量磁盘管理和UEFI启动模式下的电脑。
如果你的硬盘大于 2TB 或打算使用 UEFI 启动,则应该使用 GPT 表结构。
MBR (Master Boot Record):传统方式,最多只能划分四个主分区(或三个主分区加一个扩展分区包含多个逻辑分区),且单个分区最大仅支持 2TB。
GPT (GUID Partition Table):较新的标准,理论上可容纳无限数量的分区,单个分区能超过 2TB,更利于大容量磁盘管理和UEFI启动模式下的电脑。
如果你的硬盘大于 2TB 或打算使用 UEFI 启动,则应该使用 GPT 表结构。
5. 分区布局
系统分区: 应该位于靠近磁盘起始位置处(尤其是 HDD)以便加快启动过程。
用户数据分区: 尽量远离系统分区,避免碎片化严重区域。
系统分区: 应该位于靠近磁盘起始位置处(尤其是 HDD)以便加快启动过程。
用户数据分区: 尽量远离系统分区,避免碎片化严重区域。
0 条评论
下一页