在Linux中,全部都是文件,所以文件管理在Linux上格外重要,在我们学习文件管理前,我们先学习几个关于文件的命令,之后才能更好的学习文件管理。
目录 pwd命令 cd命令 列出文件内容ls 查看文件状态stat 创建文件touch 文件通配符 复制命令cp 移动与重命名mv 删除rm 显示目录树tree 创建文件夹mkdir 删除文件夹rmdir 查看文件类型file 拓展:rename&&shred显示当前工作目录
每个shell和系统进程都有一个当前的工作的目录
CWD:current work directory 显示当前的shell CWD的绝对路径pwd: 打印工作目录(当前所在目录) 参数: -P 显示真实物理路径 -L 显示连接路径(默认)改变目录
格式:cd [option] dir
作用:改变目录 切换到父目录:cd .. 切换到当前用户主目录:cd 切换至以前的工作目录:cd – 选项:-P 直接进入原目录(非链接目录) 相关的环境变量: PWD:当前目录文件 OLDPWD:上一次目录路径列出当前目录的内容或指定目录
格式:ls [option] [files|dirs]
作用:列出当前目录的内容或指定目录 用法: ls -a 显示所有文件 ls -A 显示所有文件,除.、.. ls -l 长列出 ls -R 递归 ls -ld 显示指定目录的详细信息。 ls -1 竖显示 ls -S 按文件大小降序排列 ls -t 按修改时间(mtime)从新到旧排列 ls -ut 按访问时间(atime) 从新到旧排列 ls -U 按文件存放的先后顺序 ls -X 按文件后缀排序 ls -i 显示文件的inode号 ls -Z 显示文件的context值
查看文件的状态
命令:stat
文件:metadata,data 三个时间戳: access time:访问时间,atime,读取文件内容 modify time:修改时间,mtime,改变文件内容(数据) change time:改变时间,ctime,元数据发生改变创建空文件和刷新时间
格式:touch [option]… file …
作用:创建空文件和刷新时间 OPTION: -a 仅改变atime和ctime -m 仅改变mtime和ctime -t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳 -c 如果文件不存在,则不予创建 touch filename : 当文件不存在时,则创建一个空文件,名为filename 当文件已存在时,则更新期时间戳 -a 仅更新atime,ctime -m 仅更新mtime, ctime touch filename 更新全部时间戳。文件通配符
在好多时候我们可能需要查找有相同字符,或者有一定规则的名字的文件或目录,如果我们还是利用手工一点一点的去敲出来,无疑会浪费我们好多时间,此时,我们可以利用通配符来进行文件匹配,可以较少好多我们的时间,快捷,方便,首先我们看看都有那些通配符:
* 匹配零个或多个字符 ? 匹配任何单个字符 ~ 当前用户家目录 ~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:]: 十六进制字符 接下来我们通过一些演示来说明如何使用通配符 1、 显示/var目录下所有以l开头, 以一个小写字母结尾, 且中间出现至少一位数字的文件或目录 2、 显示/etc目录下以任意一位数字开头, 且以非数字结尾的文件或目录 3、 显示/etc/目录下以非字母开头, 后面跟了一个字母及其它任意长度任意字符的文件或目录 4、 显示/etc/目录下所有以rc开头, 并后面是0-6之间的数字,其它为任意字符的文件或目录
复制文件和目录cp
命令:cp
格式:cp[option]...[-T] source dest cp[option]...source...directory cp[option]... -t directory source 说明: cp A B A是文件: 1.如果目标不存在,新建B,并将A中的数据拷贝到B中 2.如果目标存在,且B是文件,将A中的数据覆盖到B中 3.如果B是目录,在B下新建一个与源文件同名的文件并将内容进去 A是目录:(需要参数 -r) 1.如果B不存在,则创建指定目录,则创建指定目录,复制A目录下文件到B目录 2.如果B存在: 1.如果B是文件:报错 2.如果B是目录:则将包括A目录一起复制到B cp A B C D H 如果ABCD是文件: 当 H 是目录且存在的情况下才能拷贝 如果ABCH是目录:(必须用 -r) 当 H 是目录且存在的情况下才能拷贝,将包括ABCD目录一起复制到H下cp常用选项:(cp本身是直接复制原文件的,而不是链接文件)
-i:prompt before overwrite 覆盖前提示 -n:do not overwrite an existing file 不覆盖已存在的文件(也不追加) -r,-R:copy directories recursively 递归拷贝目录以及文件内容 -a:same as -dR --preserve=all 拷贝全部文件且权限不变 -d:same as --no-dereference --preserve=links 若文件为链接文件,则只复制链接属性,不复制源文件本身 -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用) -f:当覆盖时,如目的文件的缺少写权限时,强制删除目的文件,并新建再填充内容。当有-n时,无效 -v:显示拷贝的过程移动和重命名文件
格式:mv [OPTION]... A(源)... B(目的)
作用:移动和重命名文件 参数:-i: 交互式(会询问) -f: 强制(不询问) 说明:一般我们会用这个命令进行移动和重命令,如果我们将文件移动到不同的文件,就是移动,如果我们将文件移动到原目录,就是重命令
删除操作
格式:rm [OPTION]... FILE...
作用:删除文件或目录 参数:-i: 交互式 -f: 强制删除 -r: 递归(可以递归删除文件和目录)目录操作
tree 显示目录树
-d: 只显示目录 -L level: 指定显示的层级数目 -P pattern: 只显示由指定pattern匹配到的路径 mkdir 创建目录 -p: 存在于不报错, 且可自动创建所需的各目录 -v: 显示详细信息 -m MODE: 创建目录时直接指定权限 rmdir 删除空目录(可以用rm代替) -p: 递归删除父空目录 -v: 显示详细信息确定文件内容
格式:file [options] <filename>...
常用选项: -b 列出文件辨识结果时, 不显示文件名称 -f filelist 列出文件filelist中文件名的文件类型 -F 使用指定分隔符号替换输出文件名后默认的”:”分隔符 -L 查看对应软链接对应文件的文件类型 --help 显示命令在线帮助拓展:
rename:批量改名 '.txt' '.doc' *.txt
shred 粉碎功能(不做演示)