需要了解:
1、文件系统和目录结构
2、创建和查看文件
3、复制、转移和删除文件
4、软链接和硬链接*
文件系统和目录结构
文件和目录被组织成一个单根倒置树结构
文件系统从根目录下开始,用“/”表示
根文件系统:root filesystem,文件名字区分大小写
以.开头的文件为隐藏文件
路径分隔的/
文件有两类数据:元数据(metadata)、数据(data)
文件的命名规则
文件名最长255字节,包括路径在内文件名称最长4095字节
文件有不同的颜色:蓝色–>目录,绿色–>可执行文件,红色–>压缩文件,浅蓝色–>链接文件,灰色–>其他文件
除了斜杠和NUL,其他字符均有效,但不建议使用特殊字符的目录名和文件名,有些字符需要使用引号来引导。
文件名的区分大小写,不同大小写的文件不代表一个文件
Linux 下的文件类型
-:普通文件
d: 目录文件
b: 块设备
c: 字符设备
l: 符号链接文件
p: 管道文件pipe
s: 套接字文件socket
绝对路径和相对路径
绝对路径:以/开始,完整的路径路径名字,从根目录开始一层一层目录进入直到需要的路径,可用于指定任何想指定的文件名
相对路径:不以斜线开始,指定相对于当前工作目录或某目录的位置,可以作为一个简短的形式指定一个文件名
基名:basename ,文件名
目录名:dirname 目录
更改目录命令cd
进入不同的目录:cd +目录名
切换至父目录:cd …
切换至当前用户的主目录:cd 或cd ~
切换至以前的工作目录:cd -
列出目录内容
列出当前目录的内容或指定目录
用法:ls [options] [files_or_dirs]
示例:
ls -a 包含隐藏文件
ls -l 显示额外的信息
ls -R 目录递归通过
ls -ld 目录和符号链接信息
ls -1 文件分行显示
ls –S 按从大到小排序
ls –t 按mtime排序
ls –u 配合-t选项,显示并按atime从新到旧排序
ls –U 按目录存放顺序显示
ls –X 按文件后缀排序
其中最常用的 ls ,ls -a, ll
查看文件状态
stat
文件:metadata, data
三个时间戳:
access time:访问时间,atime,读取文件内容
modify time: 修改时间, mtime,改变文件内容(数据)
change time: 改变时间, ctime,元数据发生改变
需要进入相应的目录中进行查看,可查看文件,文件夹
文件通配符
- 匹配零个或多个字符
? 匹配任何单个字符
~ 当前用户家目录
~mage 用户mage家目录
~+ 当前工作目录
~- 前一个工作目录
[0-9] 匹配数字范围
[a-z]:字母
[A-Z]:字母
[wang] 匹配列表中的任何的一个字符
[^wang] 匹配列表中的所有字符以外的字符
预定义的字符类:man 7 glob
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母
[:upper:]: 任意大写字母
[:alpha:]: 任意大小写字母
[:alnum:]:任意数字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:标点符号
[:print:]:可打印字符
[:cntrl:]:控制(非打印)字符
[:graph:]:图形字符
[:xdigit:]:十六进制字符
创建空文件和刷新时间
touch命令:
touch [OPTION]… FILE…
-a 仅改变 atime和ctime
-m 仅改变 mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss]
指定atime和mtime的时间戳
-c 如果文件不存在,则不予创建
复制文件和目录cp
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
cp SRC DEST
SRC是文件:
如果目标不存在:新建DEST,并将SRC中内容填充至DEST中
如果目标存在:
如果DEST是文件:将SRC中的内容覆盖至DEST中
基于安全,建议为cp命令使用-i选项
如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填
充至新文件中
-p: 等同–preserv=mode,ownership,timestamp
-v: --verbose
-f: --force
-u:–update 只复制源比目标更新文件或目标不存在的文件
–backup=numbered 目标存在,覆盖前先备份加数字后缀
移动和重命名文件
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
常用选项:
-i: 交互式
-f: 强制
删除rm
rm [OPTION]… FILE…
常用选项:
-i: 交互式
-f: 强制删除
-r: 递归(只有文件为空的时候,才可以逐层删除)
目录操作
tree 显示目录树
-d: 只显示目录
-L level:指定显示的层级数目
-P pattern: 只显示由指定pattern匹配到的路径
mkdir 创建目录
-p: 存在于不报错,且可自动创建所需的各目录
-v: 显示详细信息
-m MODE: 创建目录时直接指定权限
rmdir 删除空目录
-p: 递归删除父空目录
-v: 显示详细信息
rm -r 递归删除目录树
索引节点
inode(index node)表中包含文件系统所有文件列表
一个节点 (索引节点)是在一个表项,包含有关文件的信息( 元数据 ),包
括:
文件类型,权限,UID,GID
链接数(指向这个文件名路径名称个数)
该文件的大小和不同的时间戳
指向磁盘上文件的数据块指针
有关文件的其他数据
inode表结构
文件引用一个是 inode号
人是通过文件名来引用一个文件
一个目录是目录下的文件名和文件inode号之间的映射
CP命令:
分配一个空闲的inode号,在inode表中生成新条目
在目录中创建一个目录项,将名称与inode编号关联
拷贝数据生成新的文件
rm 命令:
链接数递减,从而释放的inode号可以被重用
把数据块放在空闲列表中
删除目录项:,数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖。
mv命令:
如果mv命令的目标和源在相同的文件系统,作为mv 命令
用新的文件名创建对应新的目录项,删除旧目录条目对应的旧的文件名,不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!
如果目标和源在一个不同的文件系统, mv相当于cp和rm