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/ |
错误,不能有/ |