查看,复制,删除与移动文件
1.查看文件与目录:ls
用法:ls [options] [files_or_dirs]
[option]
-a 包含隐藏文件
-l 显示额外的信息
-R 目录递归通过
-ld 目录和符号链接信息
-1 文件分行显示
–S 按从大到小排序
-d 仅列出目录本身,而不是列出目录内的文件数据
-f 直接列出结果,而不进行排序(ls默认会以文件名排序)
-F 根据文件,目录等信息给予附加数据结构,eg:
*:代表可执行文件 /:代表目录
=:代表socket文件
|:代表FIFO文件
-h 将文件容量以人类易读的方式(KB,MB)列出来
-i 列出inode号码
-l 列出长数据串,包含文件的属性与权限等数据
-t 按mtime排序,而不是文件名
--color=never不要依据文件特性给予颜色显示
--color=always显示颜色
--color=auto让系统依据设置判断是否给与颜色
--full-time 以完整的时间(包含年、月、日、时、分)输出
--time={atime,ctime}输出访问时间或改变权限属性时间(ctime)
而非内容改变时间(mtime)
-u 配合-t选项,显示并按atime从新到旧排序
-U 按目录存放顺序显示
–X 按文件后缀排序
2.查看文件状态
stat
文件:metadata, data
三个时间戳:
access time:访问时间,atime,读取文件内容
modify time: 修改时间, mtime,改变文件内容(数据)
change time: 改变时间, ctime,元数据发生改变
3.文件通配符
(1)通用字符类
* 匹配零个或多个字符
? 匹配任何单个字符
~ 当前用户家目录
~mage 用户mage家目录
~+ 当前工作目录
~- 前一个工作目录
[0-9] 匹配数字范围
[a-z]:字母
[A-Z]:字母
[wang] 匹配列表中的任何的一个字符
[^wang] 匹配列表中的所有字符以外的字符
(2)预定义的字符类:#man 7 glob
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母
[:upper:]: 任意大写字母
[:alpha:]: 任意大小写字
[:alnum:]:任意数字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:标点符号
[:print:]:可打印字符
[:cntrl:]:控制(非打印)字符
[:graph:]:图形字符
[:xdigit:]:十六进制字符
4.touch创建空文件和刷新时间
touch [OPTION]... FILE...
-a 仅改变 atime和ctime
-m 仅改变 mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss]
指定atime和mtime的时间戳
-c 如果文件不存在,则不予创建
5.复制文件和目录cp
(1)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中内容填充至新文件中
(2) cp SRC... DEST
SRC...:多个文件
DEST必须存在,且为目录,其它情形均会出错;
(3)cp SRC DEST
SRC是目录:此时使用选项:-r
(4)常用选项
-i:覆盖前提示
–n:不覆盖,注意两者顺序
-r, -R: 递归复制目录及内部的所有内容
-a: 归档,相当于-dR --preserv=all(保存文件,全部保存)
-d:--no-dereference --preserv=links 不复制原文件,只复制链接名
--preserv[=ATTR_LIST]
mode: 权限
ownership: 属主属组
-p: 等同--preserv=mode,ownership,timestamp(大写P相当于软连接)
-v: --verbose(显示详细的过程)
-f: --force
5.移动和重命名文件mv
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
-i: 交互式
-f: 强制
7.删除
rm [OPTION]... FILE...
-i: 交互式
-f: 强制删除
-r: 递归
--no-preserve-root
8.tree 显示目录树
-d: 只显示目录
-L level:指定显示的层级数目
-P pattern: 只显示由指定pattern匹配到的路径
9.mkdir 创建目录
-p: 存在于不报错,且可自动创建所需的各目录
-v: 显示详细信息
-m MODE: 创建目录时直接指定权限
10.rm(rmdir) 移除文件或目录
-p: 递归删除父空目录
-v: 显示详细信息
-r:递归删除
-f:就是force,忽略不存在的文件,不会出现警告信息
11.inode表
(1)在 CP的 命令:
分配一个空闲的inode号,在inode表中生成新条目
在目录中创建一个目录项,将名称与inode编号关联
拷贝数据生成新的文件
(2)rm 命令:
链接数递减,从而释放的inode号可以被重用
把数据块放在空闲列表中
删除目录项
数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖。
(3)mv和inode
- 如果mv命令的目标和源在相同的文件系统,作为mv 命令
用新的文件名创建对应新的目录项
删除旧目录条目对应的旧的文件名
不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动! - 如果目标和源在一个不同的文件系统, mv相当于cp和rm
12.硬链接
(本质是给一个文件多个文件名,目录不支持硬链接,
删除任何一个,其他名称不受影响)
(1)创建硬链接会增加额外的记录项以引用文件
(2)对应于同一文件系统上一个物理文件
(3)每个目录引用相同的inode号
(4)创建时链接数递增
(5)删除文件时:
rm命令递减计数的链接
文件要存在,至少有一个链接数
当链接数为零时,该文件被删除
(6)不能跨越驱动器或分区
语法:
ln filename [linkname ]
13.符号(或软)链接(相就可以当于快捷方式,只要路径)
(1)一个符号链接指向另一个文件
(2)ls - l的 显示链接的名称和引用的文件
(3)一个符号链接的内容是它引用文件的名称
(4)可以对目录进行
(5)可以跨分区
(6)指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数;
语法:
ln -s filename [linkname]
14.确定文件内容file
file [options]...
-b 列出文件辨识结果时,不显示文件名称
-f filelist 列出文件filelist中文件名的文件类型
-F 使用指定分隔符号替换输出文件名后默认的”:”分隔符
-L 查看对应软链接对应文件的文件类型