写在最前面
本系列文章整理工作中常用的linux基础命令,将平常的散乱笔记汇总成博客,方便后续更新和查阅,同时预留相关专题以督促自己。本篇是文件目录操作相关知识。
一、 创建
创建目录
mkdir [OPTION]... DIRECTORY...
常用option:
-p: 可以同时创建父目录
-m: 用于对新建目录设置存取权限,也可以用 chmod 命令进行设置
创建文件
命令 | 说明 | 备注 |
---|---|---|
vi/vim | 若文件不存在则创建新文件,并进入编辑界面 | 可参考文章 |
touch | 若文件不存在则创建新文件 | 该命令可修改文件和目录的时间属性 |
> | 若文件不存在则创建新文件 | 若存在则覆盖文件内容 |
>> | 若文件不存在则创建新文件 | 若存在则追加文件内容 |
二、查找
查看
命令 | 含义 | 备注 |
---|---|---|
pwd | 显示用户当前所在工作目录 | 非常常用 |
ls | 查看文件与目录 | 非常常用 |
- ls常用参数
参数 | 含义 |
---|---|
-a | 全部文件(包括隐藏文件) |
-d | 仅列出目录本身,而不是列出目录的文件数据 |
-l | 列出长数据串,包含文件的属性与权限等数据 |
-h | 将文件容量以人类较易读的方式(例如GB,KB等)列出来 |
查找
命令 | 含义 | 说明 |
---|---|---|
find | 在系统特定目录下,查找具有某种特征【名字类型属主权限等】的文件 | 实时查找,功能强大,因为直接查找硬盘,速度慢。 |
locate | 查找关键字相关的文件 | 直接查找数据库(/var/lib/locatedb),可能查找不到或者查找到已经删除的,可以查找之前使用updatedb命令。 |
whereis | whereis命令只能用于搜索程序名 | 而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。 |
which | 查找“可执行文件” | 查找命令是否存在,以及命令的存放位置在哪儿。 |
提示:通常find不很常用,因为速度慢!通常我们都是先使用whereis或者locate来检查,如果真的找不到了,才以find来查找。因为whereis和与locate是利用数据库来查找数据,所以相当快速,而且并没有实际查询磁盘,比较节省时间。
find与locate的详细使用方法,后续单独说明。
三、复制、删除与移动
复制
- cp
复制文件或目录
cp [OPTION]... SOURCE... DIRECTORY
常用option:
选项 | 说明 |
---|---|
-a | 相当于-pdr的意思 |
-i | 询问是否覆盖 |
-r | 递归持续复制,用于目录的复制 |
-f | 强制,若目标文件已经存在且无法开启,则删除后再尝试一次 |
-d | 若源文件为连接文件,则复制文件属性而非文件本身 |
-l | 进行硬连接的连接文件创建,而非复制文件本身 |
-s | 复制成文符号链接文件,即“快捷方式”文件 |
-i | 强制删除,不做提示 |
-p | 连同文件的属性一起复制过去,而非使用默认属性(备份常用) |
-u | 根据时间判断是否需要复制 |
如果源文件有两个以上,则最后一个目的文件一定要是“目录”才行
删除
- rm
删除文件或目录
rm [OPTION]... FILE...
常用option:
选项 | 说明 |
---|---|
-r | 递归删除目录文件及子目录 |
-f | 强制删除,不做提示 |
-i | 删除之前进行提示 |
-d | 删除空目录 |
举例:递归删除目录下所有exe文件
find . -name '*.exe' -type f -print -exec rm -rf {} \;
(1) “.” 表示从当前目录开始递归查找
(2) “ -name ‘*.exe’ "根据名称来查找,要查找所有以.exe结尾的文件夹或者文件
(3) " -type f "查找的类型为文件
(4) “-print” 输出查找的文件目录名
(5) -exec选项后边跟着一个所要执行的命令,表示将find出来的文件或目录执行该命令。exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个\,最后是一个分号
- rmdir
删除空目录
rmdir [OPTION]... DIRECTORY...
常用option:
-p: 可以同时删除父目录
移动
- mv
移动文件与目录,或更名
mv [OPTION]... SOURCE... DIRECTORY
常用option:
选项 | 说明 |
---|---|
-u | 根据时间判断是否需要移动 |
-f | 不询问,强制覆盖 |
-i | 询问是否覆盖 |
rename可以用来更改大量文件的文件名,参考man rename
- cd
移动当前工作目录
命令 | 含义 |
---|---|
cd | 回到用户主目录 |
cd ~ | 回到用户主目录 |
cd .. | 返回上一级目录 |
cd - | 返回上次所在目录 |
cd !$ | 返回上个路径参数所在位置 |