linux目录和文件的基本操作
摘要
目的:
- 介绍文件目录类的相关指令
一、查看目录
1. pwd
- 这是查看所有目录的指令,并不包括查看文件本身
| 指令 | 功能 |
|---|---|
| pwd | 显示当前工作目录的绝对路径 |

2. ls、ll指令
| 指令 | 功能 | 选项 |
|---|---|---|
| ls | 显示当前目录中的文件/目录 | -a all,显示当前目录所有的文件和目录,包括隐藏的(在linux中,隐藏文件都是以点.开头的)-l 以列表的方式显示 -h human,以人的思维显示 |
| ll | 相当于 ls -l |


二、创建文件、目录
1. 目录操作
(1) 创建目录
| 指令 | 功能 |
|---|---|
mkdir /home/dog |
要创建的目录 |
mkdir -p /home/animal/tiger |
创建多级目录 |

(2) 删除目录
| 指令 | 功能 | 选项 |
|---|---|---|
rmdir /home/dog |
删除dog目录(要求dog是空目录,如果非空则无法删除) |
rm只能删除空目录,不能删除有内容的目录
| 指令 | 功能 | 选项 |
|---|---|---|
rm -r /home/animal |
递归删除/animal下面的所有内容 | -r recursion,递归删除 |
rm -rf /home/animal |
递归删除 /animal下面所有的内容,并且不需要提示 | -f 不需要删除时逐一确认 |
要删除非空的目录,只能用rm -r
rmdir -rf一定要慎用,要不然全部删除了

2. 文件操作
(1) 创建文件
| 指令 | 功能 | 选项 |
|---|---|---|
touch hello.txt |
创建空文件,名为hello.txt |

(2) 删除文件
| 指令 | 功能 | 选项 |
|---|---|---|
rm hello.txt |
删除hello.txt | |
rm -f hello.txt |
删除hello.txt,并且不需要确认 | -f 删除的时候不提示 |
三、拷贝文件、目录
| 指令 | 功能 | 选项 |
|---|---|---|
cp hello.txt /home |
将hello.txt复制到/home下 | |
cp -r dir1/ dir2/ |
将dir1/整个目录(包括dir1)都复制到dir2下面 | -r recursion,递归复制 |
\cp -r dir1/ dir2/ |
如果dir1已经复制到dir2了,那么再次cp操作就会覆盖原先的文件\cp在覆盖的时候不需要逐一确认 |

复制目录必须使用
cp -r,不论目录是否为空
四、移动/重命名文件、目录
1. 移动、重命名文件
| 指令 | 功能 | 说明 | 选项 |
|---|---|---|---|
mv hello.txt world.txt |
将hello.txt重命名为 world.txt | 重命名:如果第一个参数和第二个参数的落点都为文件 | |
mv hello.txt /home |
将hello.txt移动到/home目录下 | 移动 | |
mv hello.txt /home/world.txt |
将hello.txt移动到/home目录下并更名为world.txt | 重命名 + 移动 |
重命名

移动文件

移动 + 重命名

2. 移动目录
| 指令 | 功能 | 说明 | 选项 |
|---|---|---|---|
mv dir1/ dir2 |
将dir1移动到dir2内部 |

移动的时候是将整个目录(包括参数目录)都移动过去了
五、查看文件
1. cat指令
- cat指令只能查看不能修改,查看重要的文件的时候比较安全
| 指令 | 功能 | 说明 | 选项 |
|---|---|---|---|
cat hello.txt |
查看hello.txt文件(只能查看,不能修改) | ||
cat -n hello.txt |
查看hello.txt文件,并且显示行号 | -n num | |
| `cat -n hello.txt | more` | cat一般搭配more指令方便观看 只有cat -n xxx | more常用,cat xxx | more 相当于 more xxx |

2. more指令
more不仅仅用于查看文件,所有在终端显示的都可以交给more
| 指令 | 功能 | 说明 | 选项 |
|---|---|---|---|
more hello.txt |
查看hello.txt | ||
| `cat -n hello | more` | 查看hello.txt,可以显示行号 |
more的快捷键
| 操作 | 功能 |
|---|---|
| space空格 | 代表向下翻一页 |
| Enter | 向下翻一行 |
| q | 代表立即离开more,不再显示文件内容 |
| Ctrl + F | 向下滚动一屏 |
| Ctrl + B | 返回上一屏 |
| = | 输出当前行号 |
| :f | 输出文件名和当前行号 |
3. less指令
- less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。
- less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容(动态加载)
- 对于显示大型文件具有较高的效率。
指令和more差不多
| 指令 | 功能 | 说明 | 选项 |
|---|---|---|---|
less hello.txt |
查看hello.txt | ||
| `cat -n hello | less` | 查看hello.txt,可以显示行号 |
less的操作
| 操作 | 功能说明 |
|---|---|
| space空格 | 向下翻动一页 |
| pagedown | 向下反动一页 |
| pageup | 向上翻动一页 |
| /字符串 | 向下搜寻[字符串],n:向下查找,N:向上查找 |
| ?字符串 | 向上搜寻[字符串],n:向下查找,N:向上查找 |
| q | 离开less |
4. head指令
head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
| 指令 | 功能 | 说明 | 选项 |
|---|---|---|---|
head hello.txt |
查看hello.txt的头10行内容 | ||
head -n 5 hello.txt |
查看hello.txt的头5行内容 | head不仅仅可以用于文件,也可以通过管道将内容给head,从而只筛选出打印到现实台的头几行 | -n 可以指定行数 |


5. tail指令
tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的前10行内容。
| 指令 | 功能 | 说明 | 选项 |
|---|---|---|---|
tail /etc/profile |
查看文件尾10行内容 | 默认是10行 | |
tail -n 5 /etc/profile |
查看文件尾5行内容 | -n 选择行数 | |
tail -f /etc/profile |
实时追踪该文档的所有更新,Ctrl + C退出 | 这个操作会占据控制台 | -f 追踪更新 |
tail -f log.txt > hello.txt |
将日志打印到hello.txt中 | 仅仅打印日志,但是控制台仍然会被占住 |



六、重定向
1. 输出重定向覆盖> | 清空文件
| 指令 | 功能 | 说明 | 选项 |
|---|---|---|---|
| 打印到控制台的内容 > hello.txt | 将 打印到控制台的内容 重定向到 hello.txt,覆盖掉原来的内容 | ||
tail -f log.txt > hello.txt |
将日志打印到hello.txt中 | ||
ls -al > hello.txt |
将当前目录的文件信息写入到hello.txt中 | ||
echo helloworld > hello.txt |
将helloworld覆盖写到hello.txt中 | ||
echo "" > hello.txt |
清空文件?实际上会保留一行 | ||
> hello.txt |
真正的清空文件 |

2. 输出重定向追加>>
| 指令 | 功能 | 说明 | 选项 |
|---|---|---|---|
| 打印到控制台的内容 >> hello.txt | 将 打印到控制台的内容 重定向追加到 hello.txt,覆盖掉原来的内容 | ||
ls -al > hello.txt |
将当前目录的文件信息写入到hello.txt中 | ||
echo helloworld >> hello.txt |
将helloworld追加到hello.txt中 |
将日历追加到信息

七、链接指令
相当于创建一个快捷方式
| 指令 | 功能 | 说明 | 选项 |
|---|---|---|---|
ln -s /srcdir /home/user/ln |
ln目录相当于srcdir的快捷方式,操作一方,另一方也会变动 | 当使用pwd指令查看目录时,看到的是软链接(也就是快捷方式所在)的目录 | -s 必须使用的 |
rm ln |
ln是一个软链接,这样删除一个文件 | 软链接实际上是一个文件,删除的是文件而不是目录 | |
rm ln/ |
错误,不能有/ |



浙公网安备 33010602011771号