du、mkdir、touch、ln、rm、mv、which、find命令
统计目录文件空间占用情况-du命令
du [选项] 文件或目录
是专门统计当前目录中所有目录的大小
常用的选项有
选项 | 说明 |
---|---|
-a | 统计所有目录以及其中的文件的大小 |
-h | 以更人性化的方式 (默认以KB计数,但不显示单位) 显示出统计结果 |
-s | 只统计目录本身所占用空间大小,而不是统计子目录、文件的大小**(-a和-s不能同时使用)** |
–max-depth=n | 统计查看指定目录以及它的第一层子目录的大小 |
du -a
du -s
du -h (经常 和 -ah 、 -sh 连用 )
du -a -s 不可连用
du -h --max-depth=n
创建新目录-mkdir
mkdir [ 选项 ] 目录位置及名称 (创建的是空目录)
在当前目录(11)下创建名为:xc0404 的子目录
mkdir -p /zj/zj123/zj123456 在11目录下一次性创建多个嵌套目录(先切换到11的目录总在建立)
创建目录 /zj ,在/zj目录下再创建子目录 /zj123,在/zj/zj123目录下再创建一个子目录为/zj123456
创建空文件-touch命令
touch 文件(文件格式:设置一个文件名称加上 .txt )
经常用于创建新的空文件
touch 多个空文件
文件可以直接写出来 :aa.txt bb.txt cc.txt ,也可以用大括号来显示 {aa,bb,cc}.txt
创建链接文件-In
为文件或目录建立链接文件,类似于Windows系统的快捷方式
链接文件类型可分为:软连接、硬链接
软连接又称为符号链接
文件类型 | 软连接文件 | 硬链接文件 |
---|---|---|
删除源文件后 | 失效 | 仍然可用(文件占用空间与源文件相同) |
适用范围 | 适用于文件或目录 | 仅适用于文件 |
保存位置 | 与源文件可在不同的文件系统中 | 必须与源文件在同一个文件系统( 即同一个分区)中 |
源文件的关系 | 相当于快捷方式 | 相当于给文件起个别名 |
inode号码 | inode号码不同 | inode号码相同 |
当一个文件拥有多个硬链接时,对文件内容修改,会影响到所有文件名;但是删除一个文件名,不影响别的文件名的访问。删除一个文件名,只会使得"硬链接数"减1。需要注意的是不能对目录做硬链接。在日常工作中几乎不会建立文件的硬链接。
软链接:ln -s 源文件/目录 (绝对目录) 链接文件
硬链接:ln 源文件 链接文件名或目标位置(自定义)
当我们修改源文件22里面的内容,硬链接h-sa2 里的内容也随着改变
复制多个文件或目录时,目标位置必须是目录,且目标目录必须已存在
将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录
cp [ 选项 ] 源文件/目录 目标文件或目录
将目录复制在本目录
将文件复制到别的目录中
选项 | 说明 |
---|---|
-f | 覆盖目标同名文件或目录时不进行提醒,而直接强制复制 |
-i | 覆盖目标同名文件或目录时提醒用户确认 |
-p | 复制时保持原文件的权限,属主及时间标记等属性不变 |
-r | 复制目录时必须选用此选项,表示递归复制所有文件及子目录 |
删除文件或目录(删除前建议先备份)-rm
rm 命令的基本格式为:
rm [选项] 源文件或目录 目标文件或目录
常用项
选项 | 说明 |
---|---|
-f | 强制删除(force),和 -i 选项相反,使用 -f,系统将不再询问,而是直接删除目标文件或目录。 |
-i | 和 -f 正好相反,在删除文件或目录之前,系统会给出提示信息,使用 -i 可以有效防止不小心删除有用的文件或目录。 |
-r | 递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有的子目录和文件。 |
-rf* | 直接把当前目录里的东西全删了 |
删除目录的话用rm -f
移动文件或目录-mv
mv 命令(move 的缩写),既可以在不同的目录之间移动文件或目录,也可以对文件和目录进行重命名。
mv 命令的基本格式为:
mv [选项] 源文件或目录 目标文件或目录
可以在转移文件时就改名了
常用项
选项 | 作用 |
---|---|
-f | 强制覆盖,如果目标文件已经存在,则不询问, 直接强制覆盖 |
-i | 如果目标文件已经存在,则询问用户 是否覆盖(默认选项) |
-v | 显示文件或目录的移动过程 |
查找命令文件存放目录-which
which的搜索范围由环境变量 PATH 决定(echo $PATH)
外部命令想要能执行,必须得让系统知道它存在在哪个位置才能执行(得先在环境变量中的目录下建立存在位置)
which 命令 |程序名 默认当找到第一个目标后不继续查找
或
which -a 命令 | 程序名 在所有搜索路径中查找
用which命令来查找内部命令时查找不到的,内部命令是没有存放位置的
查找文件或目录-find
采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找
find [ 查找范围] [查找条件表达式]
查找范围:目录名称
查找条件表达式:查找条件的类型
查找类型 | 关键字 | 说明 |
---|---|---|
按名称查找 | -name | 根据目标文件的名称进行查找,允许使用"*" 及 “?” 通配符 |
按文件大小查找 | -size | 根据目标文件的大小进行查找 一般使用“+“、”-” 号设置超过或小于指定的大小作为查找条件。 常用的容量单位包括kB (注意k是小写)、MB、GB |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件的类型进行查找 文件类型包括普通文件(f) 、目录(d)、块设备文件(b)、字符设备文件 ©等 块设备文件(b) :成块读取数据的设备(硬盘,内存,光驱) 字符设备文件© :按单个字符读取数据的设备(键盘,鼠标) |
使用find命令实现多个查找条件
find -a 表示 而且(and)
find -o 表示 或者(or)
扩展:
find之exec用法
-exec参数后面跟的是Linux命令,它是以分号" ;”为结束标志,由于各个系统中分号会有不同的意义,因此在分号前面加上反斜杠转义符 “\”
{} 代表前面find查找出来的文件名。
find 命令匹配到了当前目录下的所有普通文件,并在-exec选项中
使用Is |命令将它们列出 find ./-type f -exec ls -| {} ;
例如:
查找一个 大于1M 的且 以64结尾 的 普通文件 并使用 ls -lh 命令列出来
查找一个 大于1M 的且 以64结尾 的 普通文件 并使用 rm -rf 命令把他们删掉
查找一个 两天内 的 普通文件 并使用 ls -l 命令列出来
查找一个 两天内 的 普通文件 并使用 rm -rf 命令把他们删掉
我们还可以用 管道符" | " 加上xargs 或者 -delete 来代替 -exec { } \ ;