文件

好的文件管理习惯有助于延长电脑的使用时间和提高工作效率,过度的规范文件文件也可能降低工作效率。所以,有人喜欢东西就放桌面,桌面就是工作台,老板看到会觉得这样的牛马是好牛马,对于牛马自身而言在密集的文件堆里可能找一个文件要 -10 San值。

数据单位

所有的计算机的数据都是底层都是0或1存储,这一个0或1所占空间称为bit比特位,电脑读写按8个bit为一组读写,即1个字节byte,1个字节所能表示不同的数据共256种(2的8次方)。常见的单位有 Byte、Kilobyte、Megabyte, Gigabyte,Terabyte。

以下表格为各个数据体积单位换算

数据单位 缩写(常用) 等价于
Byte B 8bit
Kilebyte KB K 1024B
Megabyte MB M (通常读兆B、兆) 1024KB
Gigabyte GB G 1024MB
Terabyte TB T 1024GB

Note

1024是2的10次方,约略等于1000,可以用1000粗略换算,为什么是1024?因为计算机非常喜欢乘2

值得注意的是,网速单位也会有用 KB/s、MB/s、GB/s 表示每秒传输的数据量

文件占用空间

俗称文件的大小、体积(size),使用数据单位指代,常见的文件以KB、MB、GB评估其大小。

一张标清照片约500KB,一个保真音质的mp3音频大概8MB,一部1080P清晰度的电影约4GB。我们对这些文件的大小要有个感知,如果一个txt文本文件有1GB大小,这个文本文件多数是有问题的。

文件类型

文件的格式 基本名+文件拓展名

文件拓展名是由.跟着特定的字母或数字,用于规定文件类型,如 .txt .jpg

文件根据数据定义可简单分为两种

  • 字符文件,常称文本文件,其内容可被解析为字符,可用文本编辑,且体积偏小,KB级别。
  • 字节文件,又名二进制文件,常根据文件类型进行特定的解析,内容为0和1的编排,以文本解析则有很多乱码和奇奇怪怪的字符,文件体积可以很大。

举例,创建一个txt文件,是文本文件,将它压缩为一个zip文件后,这个zip文件却是字节文件了。

更改文件格式并不会修改文件内容本身。如果将文件mp3格式改成txt,它还是字节文件,文本编辑器并不能正常解读。故文件格式不能乱改

常见的文件格式对应的文件类型

格式 类型 格式 类型
.txt 文本 .link 快捷方式
.doc/.docx 文档 .xls/.xlsx/.csv 数据表格
.ppt/.pptx 幻灯片,ppt .mp4 视频
.mp3 音频 .xml 标记语言文本
.jpg/.jpeg 有损压缩图片 .json json数据文本
.png 无损可透明图片 .ini/.conf 文本配置
.gif 无损动态图 .toml 文本配置
.pdf 文档 .yaml 文本配置
.bat/.cmd/.ps1 windows脚本 .exe 可执行程序
.zip/.rar/.7z/.tar/.tar.gz 压缩 .dll 程序组件
.epub/.mobi/.azw3 电子书 .ico 图标
.md Markdown文本 .html 网页
.js javascript脚本 .sh unix脚本
.dat 应用数据 .msi 安装程序

有些格式文件本质是压缩文件,如epub,用压缩工具打开就能看到具体的组成。

文件夹

文件夹folder / directory用于聚合文件,在Unix系统中又称为目录

桌面操作系统通常会有几个固定的特定含义的文件夹,桌面(Desktop)、文档(Documents)、下载(Downlaod)、图片、视频、音乐

文件与文件夹组合就形成了多层不一的结构,而确定每个文件的在文件系统中的位置就是通过路径 path表达,这部分内容将会在操作系统章节细讲。

Note

系统给你们规定好一些常用的文件夹,你们却只往桌面文件夹塞东西,有系统默认的下载文件夹你们也不用,还是下载到桌面省事。

文件操作

创建:What can I say?

修改:对文件执行写入操作,这个也没什么好说的,记得保存

删除:丢到回收站或垃圾桶里,有些程序里的删除是绝对的删除

复制:又称拷贝copy,创建一份一摸一样的文件

剪切:移动文件操作,跨磁盘或跨文件系统操作的移动文件包含两个过程,先复制到目标位置,然后再删除源文件

覆盖:复制的过程中,源文件包含和目标区域相同文件名的文件,会提示是否覆盖

打开:其他应用软件正在读取访问这个文件,这个文件可能删除不了或者覆盖

还原:回收站里的文件可以恢复到原位置

文件基本属性

  • 体积大小
  • 文件名
  • 文件权限,可读,可修改,可执行

文件状态

文件状态过程

我们打开一个文件,通常只是为了读取数据,而且修改数据,比如打开图片,一般只是查看,并未对文件本身做出一定的修改,过程为文件从硬盘传到内存,然后CPU与内存交互获取文件。

如若编辑图片,那将会使得读到内存中的文件数据发生变化,修改文件后如果没有保存,那读入到内存里的文件是变化了,但是并未回归到硬盘,文件的保存过程就是将内存中的数据存入硬盘

一般软件都会提供两种保存方式:

  • 直接保存,对原文件的覆盖
  • 另存为新文件,源文件不修改,将修改后的内容存为一个新文件。

文件系统

文件系统是定义文件数据如何组织存在存储硬盘中,具有读写性能优化、安全恢复、查找优化、权限管理、快照备份等特性要求。

常见的文件系统

  • NTFS,Windows默认文件系统
  • ext4,Linux 文件系统主流
  • fat32,闪存卡,存储卡,小容量U盘,单文件大小不能超过4GB
  • exfat,解决了fat32不能存超过4GB文件的问题,推荐U盘使用这个
  • APFS,苹果公司的自研
  • F2FS,安卓手机系统中采用,延长存储使用寿命

格式化操作,对文件系统执行格式化操作,将会抹掉这个文件系统的所有文件记录,亦可更改其文件系统类型。慎用格式化操作。

文件权限

文件权限根据角色划分,要判断当前登录用户、同用户组用户,其他用户,管理员用户的权限。

在这里我只讲一个问题,就是Windows系统下,我们执行文件操作时,会提示是否使用管理员模式执行,这说明这个文件不是普通文件,需要提升权限。

应注意,要操作的文件有没有必要提权,不然其他应用程序不能正常读写(除非也以管理员模式运行)

另外,发现不应该有提权的文件夹必须提权才可以操作,这说明文件夹存在权限过度的问题,应修正,防止其他软件不能正常操作这些文件。

大批量文件操作

我们执行大批量文件操作(如删除、复制),经常看到文件传输速度忽高忽低,这是由于文件系统的特性决定的,小文件慢,大文件快。

跨文件系统传输,尤其是向U盘中拷贝数据,这个时候可以考虑将文件打包(即压缩为一个zip),提高传输效率,同样的也尽可能避免在U盘中直接解压大量文件,这也是不高效的操作。

压缩文件

压缩是一门学问,解压也是一门学问。

不同的软件,解压和压缩的速度也不一样,相对的,压缩比越高,压缩的时间也较长,压缩吃CPU资源。

压缩率,压缩后的文件大小相对于源文件的百分比。不同的压缩格式其压缩率也不一,这里我只讲3种最推荐的主流格式。

Zip压缩

这是最常见的压缩,压缩快解压也快,对压缩文件大小没什么要求的,可以用这个打包文件。

7z压缩

质量最高的压缩,可以做到压缩率很低,也可以调节压缩等级,等级越高,压缩时间越长,压缩文件的体积越小

tar归档

tar的作用和zip类似,速度也快,是Unix系统种使用的多一些,tar归档完之后,可以使用gzip压缩对tar文件二次压缩成.tar.gz(缩写.tgz)文件,.tar.gz 在特定领域为大文件打包。解压tgz也是先解成tar然后再拆包tar。

一些特定格式的文件已经是压缩文件,如.jpeg,.mp4

压缩一个已是压缩文件并不能带来多大的效果,这点要注意,比如压缩一个mp4视频文件为zip,其目的只是为了逃避审查(微信?),毕竟谁知道zip里是个啥?

分卷压缩

一个压缩文件很大,同样不便于传输,万一传输失败了就要全部重传。故可以将一个压缩文件分割成几个小块文件,解压的时候,解压一个小块会自动追加解压其他压缩块。

其他性质的文件

  • 隐藏文件,一般情况看不见的但真实存在的,有些文件不是为了给用户直接使用,而是提供给软件的,故而希望用户忽略他们的存在,避免用户对这些文件的访问,也能简化文件夹的内容显示。所以桌面隐藏图标整个世界就清净了。

  • 链接link文件,Windows中的快捷方式,从多个位置访问文件但是不想用很多个副本。链接文件包含了一个目标文件的位置信息。打开链接文件等价于打开目标文件,但是删除链接文件不会删除目标文件本体,经典的认知就是,删除桌面的程序快捷方式并不是卸载程序,程序还在,只是少了桌面的入口。

  • 缓存cache文件,缓存的意义在于降低文件读写的次数消耗,提高文件使用效率。比如听网易云音乐,网易云会将音频文件缓存到它的缓存文件夹中,下次再听的时候它优先查看是否有缓存,这样就不用从服务器再下载了。

    缓存文件多数软件提供清理功能,在磁盘空间拮据的情况下,可以优先清理缓存,通常缓存文件清除后并不影响程序的正常使用。

  • 临时temp文件,程序在运行过程中产生的文件,这类文件比缓存文件具有一定的时效性,压缩文件预览查看操作就会生成临时文件供用户访问。系统也有临时文件区域供程序使用。

文件查找

有特定的工具方便我们查找想要的文件,如果对文件的位置有着清晰的认知就不需要查找。

文件查找是特别消耗CPU的行为,尤其查找范围文件过千,这就是为啥查找文件的时候容易卡顿。

过度的依赖查找反而是没有养成文件分类的好习惯的表现。做好文件归纳分类,缩小文件查找范围,再利用查找功能是最佳的文件习惯。

不要说自己从来不会搞什么分类,小孩认识世界的方式就是命名和分类,命名是从无到有,分类是从有到不同。

文件排序

文件夹内的文件以某种规则排列。比如根据大小,文件日期,文件名,默认文件名,文件名排序根据文件名的拼音字母的顺序。这和微信联系人里AAA建材王总比较靠前一个道理。

文件命名

似乎取名字是个非常困难的问题?

取名参考

  • 意义明确,知道这是什么
  • 避免非常规字符比如#@!~
  • 数字用作编号方便排序,用作日期
  • 能使用英语就使用英语,不知英语就拼音,拼音也不习惯就汉字
  • 可以使用-_做词汇分割,护眼
  • 拒绝又臭又长的命名,将它改为简介明了的名字