一、ls:列出目录内容
ls
命令是(list)的缩写,其功能是显示目录中的文件及其属性信息,是最常用的Linux命令之一。
1、ls:语法格式
ls [参数名] [文件名]
2、ls:常用参数
参数 | 描述 | 参数 | 描述 | 参数 | 描述 |
---|---|---|---|---|---|
-a | 显示所有文件及目录(包含隐藏文件) | -h | 以可读的方式显示文件大小 | -r | 根据首字母倒序显示 |
-R | 递归显示所有子文件 | -d | 显示目录自身的属性信息(权限、用户) | -S | 依据内容大小倒序显示 |
-t | 依据最后修改时间倒序显示 | -l | 显示文件的详细属性信息 | -m | 以逗号为间隔符,水平显示文件信息 |
3、ls:参考示例
3.1、显示当前目录中的文件名(默认不含隐藏文件)
[root@converts ~]# ls
anaconda-ks.cfg calico.yaml deploy.yaml test.sh
3.2、显示当前目录中的文件名(含隐藏文件)
[root@converts ~]# ls -a
. .. anaconda-ks.cfg .bash_history .bash_logout .bash_profile .bashrc calico.yaml .cshrc deploy.yaml .docker .kube .node_repl_history .npm .pki .ssh .tcshrc test.sh .viminfo
3.3、以详细信息模式输出文件名及其属性信息
[root@converts ~]# ls -l
总用量 264
-rw-------. 1 root root 1230 12月 25 11:52 anaconda-ks.cfg
-rw-r--r--. 1 root root 244734 12月 27 17:18 calico.yaml
-rw-r--r--. 1 root root 15439 1月 10 16:37 deploy.yaml
-rw-r--r--. 1 root root 264 1月 15 16:55 test.sh
# 也可以使用 ll(效果等同)
[root@converts ~]# ll
总用量 264
-rw-------. 1 root root 1230 12月 25 11:52 anaconda-ks.cfg
-rw-r--r--. 1 root root 244734 12月 27 17:18 calico.yaml
-rw-r--r--. 1 root root 15439 1月 10 16:37 deploy.yaml
-rw-r--r--. 1 root root 264 1月 15 16:55 test.sh
3.4、显示指定目录中的文件列表
[root@converts ~]# ll /etc/nginx/
总用量 68
drwxr-xr-x. 2 root root 6 11月 11 2022 conf.d
drwxr-xr-x. 2 root root 6 11月 11 2022 default.d
-rw-r--r--. 1 root root 1077 11月 11 2022 fastcgi.conf
-rw-r--r--. 1 root root 1077 11月 11 2022 fastcgi.conf.default
-rw-r--r--. 1 root root 1007 11月 11 2022 fastcgi_params
-rw-r--r--. 1 root root 1007 11月 11 2022 fastcgi_params.default
-rw-r--r--. 1 root root 2837 11月 11 2022 koi-utf
………………省略部分输出信息………………
3.5、结合通配符一起使用
[root@converts ~]# ll /etc/nginx/nginx*
-rw-r--r--. 1 root root 3963 3月 26 12:18 /etc/nginx/nginx.conf
-rw-r--r--. 1 root root 2656 11月 11 2022 /etc/nginx/nginx.conf.default
3.6、命令组合使用
例如: 依据文件内容大小进行排序,显示指定目录中文件名及其属性详情信息,并将文件大小以可读的方式显示。
[root@converts ~]# ls -Slh /etc/nginx/
总用量 68K
-rw-r--r--. 1 root root 5.2K 11月 11 2022 mime.types
-rw-r--r--. 1 root root 5.2K 11月 11 2022 mime.types.default
-rw-r--r--. 1 root root 3.9K 3月 26 12:18 nginx.conf
-rw-r--r--. 1 root root 3.6K 11月 11 2022 win-utf
-rw-r--r--. 1 root root 2.8K 11月 11 2022 koi-utf
-rw-r--r--. 1 root root 2.6K 11月 11 2022 nginx.conf.default
-rw-r--r--. 1 root root 2.2K 11月 11 2022 koi-win
………………省略部分输出信息………………
二、cd:切换目录
cd
命令是(change directory)的缩写,其功能是切换当前所处的工作目录,路径可以是绝对路径,也可以是相对路径,若省略不写则会跳转至当前登录用户的家目录。
1、cd:语法格式
cd [参数名] [文件名]
2、cd:常用参数
参数 | 描述 | 参数 | 描述 | 参数 | 描述 | 参数 | 描述 |
---|---|---|---|---|---|---|---|
-L | 切换至符号链接所在的目录 | ~ | 切换至用户家目录 | -P | 切换至符号链接对应的实际目录 | .. | 切换至当前位置的上一级目录 |
-- | 切换至上次所在目录 |
3、cd:参考事例
3.1、切换到指令目录
# 1、查询用户当前所在目录
[root@converts ~]# pwd
/root
# 2、切换到 /etc/nginx 目录
[root@converts ~]# cd /etc/nginx
# 3、查询用户当前所在目录
[root@converts nginx]# pwd
/etc/nginx
3.2、返回上一级目录
# 1、查询用户当前所在目录
[root@converts nginx]# pwd
/etc/nginx
# 2、返回上一级目录
[root@converts nginx]# cd ..
# 3、查询用户当前所在目录
[root@converts etc]# pwd
/etc
3.3、切换到用户根目录
# 1、切换到用户根目录 cd 和 cd ~ 等价(一般使用cd即可, 方便使用)
[root@converts etc]# cd
[root@converts ~]# pwd
/root
三、pwd:显示当前工作目录
pwd
命令是(print working directory)的缩写,其功能是显示当前工作目录的路径,即显示所在位置的绝对路径。 在实际工作中,我们经常会在不同目录之间进行切换,为了防止“迷路”,可以使用pwd命令快速查看当前所处的工作目录路径。
1、pwd:参考事例
# 查看当前所在位置
[root@converts ~]# pwd
/root
四、mkdir:创建目录
mkdir
命令是(make directories)的缩写,其功能是创建目录文件。
注意:
- 若要创建的目标目录已经存在,则会提示已存在而不继续创建,不覆盖已有文件。
- 若目录不存在,但具有嵌套的依赖关系时,例如/dir1/dir2/dir3,要想一次性创建则需要加入
-p
参数,进行递归操作。
1、mkdir:语法格式
mkdir [参数] [目录名]
2、mkdir:常用参数
参数 | 描述 | 参数 | 描述 | 参数 | 描述 | 参数 | 描述 |
---|---|---|---|---|---|---|---|
-m | 创建目录的同时设置权限 | -v | 显示执行过程详细信息 | -p | 递归创建多级目录 | -z | 设置目录安全上下文 |
3、mkdir:参考事例
3.1、创建文件夹
[root@converts ~]# mkdir converts.cn
[root@converts ~]# ll
总用量 264
-rw-------. 1 root root 1230 12月 25 11:52 anaconda-ks.cfg
-rw-r--r--. 1 root root 244734 12月 27 17:18 calico.yaml
drwxr-xr-x. 2 root root 6 3月 28 16:11 converts.cn
-rw-r--r--. 1 root root 15439 1月 10 16:37 deploy.yaml
-rw-r--r--. 1 root root 264 1月 15 16:55 test.sh
3.2、创建文件夹,并设置权限
创建一个目录文件并设置700权限,具体权限相关介绍可以看《文件权限管理介绍》
[root@converts ~]# mkdir -m 700 dir1
3.3、一次性创建多个目录文件
[root@converts ~]# mkdir dir1 dir2 dir3
[root@converts ~]# ll
总用量 264
-rw-------. 1 root root 1230 12月 25 11:52 anaconda-ks.cfg
-rw-r--r--. 1 root root 244734 12月 27 17:18 calico.yaml
-rw-r--r--. 1 root root 15439 1月 10 16:37 deploy.yaml
drwxr-xr-x. 2 root root 6 3月 28 16:12 dir1
drwxr-xr-x. 2 root root 6 3月 28 16:12 dir2
drwxr-xr-x. 2 root root 6 3月 28 16:12 dir3
-rw-r--r--. 1 root root 264 1月 15 16:55 test.sh
3.4、递归创建
# 递归创建
[root@converts ~]# mkdir -p dir1/dir2/dir3
# 查询目录结构
[root@converts ~]# tree
.
├── anaconda-ks.cfg
├── calico.yaml
├── deploy.yaml
├── dir1
│ └── dir2
│ └── dir3
└── test.sh
3 directories, 4 files
[root@converts ~]#
五、rmdir:删除空目录
rmdir
命令是(remove directory)的缩写,其主要用来安全地删除那些不包含任何文件或子目录的空目录。这是与 rm
命令的一个主要区别。
warning: 因为 rm 命令(特别是使用 -r 或 -R 选项时)可以递归删除目录及其包含的所有内容,包括文件和子目录,这潜在上非常危险,容易误操作删除重要数据。造成不可挽回的损失。
1、rmdir:语法格式
rmdir [参数] [目录名]
2、rmdir:常用参数
参数 | 描述 | 参数 | 描述 |
---|---|---|---|
-p | 递归处理所有子文件 | -v | 显示执行过程详细信息 |
3、rmdir:参考事例
3.1、删除指定的空目录
[root@converts ~]# rmdir dir1
3.2、删除指定的空目录及其内部的子空目录
[root@converts ~]# rmdir -p dir1
3.3、删除指定的空目录并显示删除的过程
[root@converts ~]# rmdir -v dir1
rmdir: removing directory, 'dir1'
六、cp:复制文件或目录
cp
命令是(copy)的缩写,其功能是复制文件或目录。cp命令能够将一个或多个文件或目录复制到指定位置,常用于文件的备份工作。-r
参数用于递归操作,复制目录时若忘记添加则会直接报错;-f
参数则用于当目标文件已存在时会直接覆盖而不再询问。这两个参数尤为常用。
1、cp:语法格式
cp [参数] [源文件名] [目标文件名]
2、cp:常用参数
参数 | 描述 | 参数 | 描述 | 参数 | 描述 | 参数 | 描述 |
---|---|---|---|---|---|---|---|
-a | 功能等价于pdr参数组合 | -l | 对源文件建立硬链接,而非复制文件 | -b | 覆盖目标文件前先进行备份 | -p | 保留源文件或目录的所有属性信息 |
-d | 复制链接文件时,将目标文件也建立为链接文件 | -r | 递归复制所有子文件 | -f | 若目标文件已存在,则会直接覆盖 | -s | 对源文件建立软链接,而非复制文件 |
-i | 若目标文件已存在,则会询问是否覆盖 | -v | 显示执行过程详细信息 |
3、cp:参考事例
3.1、复制文件
# 复制指定的源文件,并定义新文件的名称
[root@converts ~]# cp old_name.txt new_name.txt
3.2、复制目录
# 复制指定的源目录,并定义新目录的名称
[root@converts ~]# cp old_path new_path
3.3、复制文件时,并保留原始权限及用户归属信息
# 复制文件时,并保留原始权限及用户归属信息
[root@converts ~]# cp -a old_name.txt new_name.txt
3.4、赋值文件并覆盖
# 将指定文件复制到 /home 目录中,并覆盖已有文件,不进行询问
[root@converts ~]# cp -f file.txt /home
七、mv:移动或重命名文件或目录
mv
命令是(move)的缩写,该命令能够对文件进行剪切和重命名操作。
1、mv:语法格式
mv [参数] [源文件名] [目标文件名]
2、mv:常用参数
参数 | 描述 | 参数 | 描述 | 参数 | 描述 | 参数 | 描述 |
---|---|---|---|---|---|---|---|
-b | 覆盖前为目标文件创建备份 | -v | 显示执行过程详细信息 | -f | 强制覆盖目标文件而不询问 | -Z | 设置文件安全上下文 |
-i | 覆盖目标文件前询问用户是否确认 | -n | 不要覆盖已有文件 | -u | 当源文件比目标文件更新时,才执行覆盖操作 |
3、mv:参考事例
3.1、重命名
对指定文件进行剪切后粘贴(重命名)
[root@converts ~]# mv old_name.txt new_name.txt
3.2、移动文件
将指定文件移动到 /root
目录中(会保留文件原始名称)
[root@converts ~]# mv filename.txt /root
3.3、移动目录
将指定目录移动到/root目录中,并定义新的目录名称
[root@converts ~]# mv dir1 /root/dir2
3.4、强制移动
将 /home
目录中所有的文件都移动到/root
目录中,如果遇到文件已存在则直接覆盖
[root@converts ~]# mv -f /home/* /root
八、rm:删除文件或目录
rm
命令是(remove)的缩写,其功能是删除文件或目录,一次可以删除多个文件,或递归删除目录及其内的所有子文件。
error:rm是一个很危险的命令,使用的时候要特别当心,尤其对于新手更要格外注意。
例如:执行rm -rf /*
命令会清空系统中所有的文件,甚至无法恢复回来。会导致系统崩溃。
1、rm:语法格式
rm [参数] [文件名]
2、rm:常用参数
参数 | 描述 | 参数 | 描述 | 参数 | 描述 | 参数 | 描述 |
---|---|---|---|---|---|---|---|
-d | 仅删除无子文件的空目录 | -f | 强制删除文件而不询问 | -r | 递归删除目录及其内全部子文件 | -i | 删除文件前询问用户是否确认 |
-v | 显示执行过程详细信息 |
3、rm:参考事例
3.1、删除文件时默认会进行二次确认
使用rm
指令删除文件时,默认需要进行二次确认,敲击 y
进行确认
# 1、删除前目录
[root@converts ~]# ll
total 73544
-rw-r--r-- 1 root root 569 Aug 18 2023 Dockerfile
-rw-r--r-- 1 root root 1240 Mar 29 11:20 home.zip
# 2、删除 home.zip 文件
[root@converts ~]# rm home.zip
rm: remove regular file 'home.zip'? y
# 3、删除后目录
[root@converts ~]# ll
total 569
-rw-r--r-- 1 root root 569 Aug 18 2023 Dockerfile
3.2、强制删除
追加 -f
参数, 无须二次确认, 直接删除。
[root@converts ~]# rm -f home.zip
3.3、递归删除
如果要删除的文件下还存在子文件,需要加上-r
参数,否则无法删除,会提示rm: cannot remove 'doc1': Is a directory
的错误。
[root@converts ~]# rm -rf doc1
九、touch:创建空文件或更新文件时间戳
touch
命令的功能是创建空文件与修改时间戳。如果文件不存在,则会创建一个空内容的文本文件;如果文件已经存在,则会对文件的Atime(访问时间)和Ctime(修改时间)进行修改操作。
1、touch:语法格式
touch [参数] [文件名]
2、touch:常用参数
参数 | 描述 | 参数 | 描述 | 参数 | 描述 | 参数 | 描述 |
---|---|---|---|---|---|---|---|
-a | 设置文件的读取时间记录 | -t | 设置文件的时间记录 | -c | 不创建新文件 | -d | 设置时间与日期 |
-m | 设置文件的修改时间记录 |
3、touch:参考事例
3.1、创建一个空文件
[root@converts ~]# touch converts.txt
[root@converts ~]# ll
total 4
-rw-r--r-- 1 root root 0 Apr 29 11:59 converts.txt
十、vim:编辑文本内容
vim
是一款功能强大的文本编辑器,广泛应用于Linux系统。Vim(Vi IMproved)是从Vi编辑器发展而来的,它在功能上比Vi
更加强大,并提供了更多的扩展性和定制选项。可对内容进行创建、查找、替换、修改、删除、复制、粘贴等操作。
Vim是一个多模式编辑器,主要包括以下几种模式:
普通模式(Normal Mode):这是Vim的默认模式,主要用于浏览和移动光标,进行复制、粘贴、删除等操作。在此模式下,你可以使用上、下、左、右键控制光标的移动,还可以对文件内容进行复制、粘贴、替换、删除等操作。
插入模式(Insert Mode):在这个模式下,用户可以输入文本或插入字符。要进入插入模式,插入模式可以如下:
“i”键:
表示从光标当前位置插入字符。“a”键:
表示从当前光标所在位置的下一个字符处插入字符。“o”键:
表示插入新的一行从行首开始输入。
底线模式(Command-line Mode/Last Line Mode):如果要保存、查找或者替换一些内容等,就需要进入底线模式。底线模式的进入方法为:在命令模式下按
:
键,Vim窗口的左下方会出现一个“:”符号,这时就可以输入相关的指令进行操作了。例如,输入“w”表示保存文件,输入“q”表示退出Vim等。指令执行后会自动返回命令模式。
tips:不管当前在哪个模式下, 只要按
Esc
键就可以退出当前模式,然后可以选择进入其他的模式。
1、编辑文件
# 如果vim.txt 文件不存在, 则会打开一个空白文件进行编辑
vim vim.txt
2、保存文件
# 1、按下 `ESC` 退出当前模式
# 2、按下 `:` 进入底线模式
# 3、输入 `w` 即可保存文件
3、保存并关闭当前编辑窗口
# 1、按下 `ESC` 退出当前模式
# 2、按下 `:` 进入底线模式
# 3、输入 `wq` 即可保存文件,并关闭窗口
4、光标跳转到该文件的行首
# 1、按下 `ESC` 退出当前模式
# 2、按下 `gg` 使光标跳转到该文件的行首
5、删除光标行及其以下行的全部内容
# 1、按下 `ESC` 退出当前模式
# 2、可以上下左右移动光标
# 3、按下 `dG` 可以删除删除光标行及其以下行的全部内容
6、删除全部内容
当想要删除全部内容, 就可以使用dd
、dG
组合命令来实现
# 1、按下 `ESC` 退出当前模式
# 2、按下 `gg` 使光标跳转到该文件的行首
# 3、按下 `dG` 可以删除删除光标行及其以下行的全部内容
十、ln:创建硬链接或符号链接
ln
命令用于创建链接文件。链接文件可以视为指向另一个文件或目录的引用,它允许用户在文件系统的不同位置访问同一文件或目录,类似于 Windows 系统中的快捷方式。
1、ln:语法格式
ln [参数] [源文件名] [目标文件名]
2、ln:常用参数
参数 | 描述 | 参数 | 描述 | 参数 | 描述 | 参数 | 描述 |
---|---|---|---|---|---|---|---|
-b | 为已存在的目标文件创建备份 | -s | 对源文件创建软链接 | -d | 允许管理员创建目录的硬链接 | -S | 设置备份文件的后缀 |
-f | 强制创建链接而不询问 | -t | 设置链接文件存放于哪个目录 | -i | 若目标文件已存在,则需要用户二次确认 | -v | 显示执行过程详细信息 |
-L | 若目标文件为软链接,找到其对应文件 | --backup | 备份已存在的文件 | -n | 将指向目录的软链接视为普通文件 | -P | 若目标文件为软链接,直接链接它自身 |
-r | 创建相对于文件位置的软链接 |
3、ln:参考事例
ln
命令可以创建 软链接和硬链接。
[root@converts ln]# ll
total 8
-rw-r--r-- 1 root root 6358 Jan 9 12:29 ln.txt
# 1.创建软链接
[root@converts ln]# ln -s ln.txt ln.soft
# 2.创建硬链接
[root@converts ln]# ln ln.txt ln.hard
# 3.查看创建的文件
[root@converts ln]# ll
total 16
-rw-r--r-- 2 root root 6358 Jan 9 12:29 ln.hard
lrwxrwxrwx 1 root root 6 Jan 9 12:30 ln.soft -> ln.txt
-rw-r--r-- 2 root root 6358 Jan 9 12:29 ln.txt
[root@converts ln]#
可以看到,同一个文件,创建软链接和硬链接所展示出来的内容是不一样的。 两者有一下几点不同。
- 文件类型不同,“-”代表的是普通文件, “l”代表的是链接。
- 文件权限不一样,软链接的权限是所有者, 所属组,其它人都是“rwx”,而硬链接则是和源文件的权限一致。
- 软链接的文件链接数是1, 而硬链接文件链接数是2。
- 软链接的文件大小则要小于源文件的大小, 硬链接则是相同。
- 软链接的文件名“ln.soft -> ln.txt” 指向了源文件路径。而硬链接则没有。
其实我们可以将软链接理解成 windows中的快捷方式,软链接只是一个指向原路径的一个快捷方式。所以软链接的文件大小要远远小于源文件的大小。而硬链接则可以理解成“cp” 的复制命令。那么有些小伙伴就要问了, 既然有了“cp” 复制命令, 为什么还需要硬链接。那是因为硬链接和复制又有一些不同之处。 下面就让我们看下硬链接和复制有什么不同吧。
# 1. 我们先看下 “ln.txt” 文件的内容
[root@converts ln]# cat ln.txt
姓名:胖太乙
# 2. 往“ln.txt” 文件追加 “年龄:1000”内容
[root@converts ln]# echo "年龄:1000" >> ln.txt
[root@converts ln]# cat ln.txt
姓名:胖太乙
年龄:1000
# 3.看下硬链接的内容变化,可以看到硬链接的内容也跟着变了
[root@converts ln]# cat ln.hard
姓名:胖太乙
年龄:1000
# 问: 如果我们改变硬链接的内容, 源文件的内容会跟着变化吗?
# 那我们试一下吧!
# 1. 改变“ln.hard”的内容
[root@converts ln]# echo "性别:男" >> ln.hard
[root@converts ln]# cat ln.hard
姓名:胖太乙
年龄:1000
性别:男
# 2. 查看源文件的内容变化
[root@converts ln]# cat ln.txt
姓名:胖太乙
年龄:1000
性别:男
[root@converts ln]#
结论:
- 硬链接和“cp” 复制的相同之处是, 两者都是复制。
- 但是硬链接的模式是“cp -p + 同步更新” , 而复制则是“cp -p”。 不管是改变硬链接的原文件内容,亦或者是改变硬链接文件的内容, 硬链接和源文件的内容都会同步变化。而复制则不具备这种功能。
- 硬链接不能跨分区
- 硬链接不能针对目录使用。
十一、find:在文件系统中查找文件
find
命令用于在文件系统中搜索文件和目录。其基本用途是在指定的目录层次结构中查找符合特定条件的文件或目录。find 命令的灵活性来自于它可以基于文件的名称、类型、大小、修改时间、访问权限等多种属性来过滤搜索结果。
1、find:语法格式
find [路径] [条件] [文件名]
2、find:常用参数
参数 | 描述 | 参数 | 描述 | 参数 | 描述 | 参数 | 描述 |
---|---|---|---|---|---|---|---|
-name | 匹配文件名 | -nouser | 匹配无所属主的文件 | -perm | 匹配文件权限 | -nogroup | 匹配无所属组的文件 |
-user | 匹配文件所属主 | -newer | 匹配比指定文件更新的文件 | -group | 匹配文件所属组 | -type | 匹配文件类型 |
-mtime | 匹配最后修改文件内容时间 | -size | 匹配文件大小 | -atime | 匹配最后读取文件内容时间 | -prune | 不搜索指定目录 |
-ctime | 匹配最后修改文件属性时间 | -exec…… {}\; | 进一步处理搜索结果 |
3、find:参考事例
3.1、全局搜索名称为Converts.Web.Entry.dll的文件
[root@converts ~]# find / -name Converts.Web.Entry.dll
/root/converts/converts/Converts.Web.Entry.dll
/var/lib/docker/overlay2/rchh3c9hd2aycybukdl6oddiy/diff/app/Converts.Web.Entry.dll
/var/lib/docker/overlay2/kufksiv8li1y4lgybqrfvbm2v/diff/app/Converts.Web.Entry.dll
/var/lib/docker/overlay2/qk9g71m96m8oh430qoqevdv1q/diff/app/Converts.Web.Entry.dll
/var/lib/docker/overlay2/dh9sv4cf4epsse982m9l944bv/diff/app/Converts.Web.Entry.dll
.........................省略部分输出...............................
3.2、搜索/root目录下.dll的文件
[root@converts ~]# find /root -name *.dll
/root/converts/converts/System.Xml.Linq.dll
/root/converts/converts/System.Runtime.CompilerServices.Unsafe.dll
/root/converts/converts/Microsoft.Build.Utilities.Core.dll
/root/converts/converts/Microsoft.Extensions.Configuration.EnvironmentVariables.dll
/root/converts/converts/System.Reflection.MetadataLoadContext.dll
/root/converts/converts/Microsoft.CodeAnalysis.VisualBasic.Features.dll
/root/converts/converts/System.IO.Compression.dll
/root/converts/converts/Azure.Core.dll
/root/converts/converts/Microsoft.AspNetCore.SignalR.Protocols.Json.dll
/root/converts/converts/Microsoft.Extensions.Configuration.Json.dll
/root/converts/converts/Microsoft.Extensions.Caching.Abstractions.dll
.........................省略部分输出...............................
3.3、搜索/root目录下大于10M的文件
[root@converts ~]# find /root -size +10M
/root/mini.syshub/mini.syshub.tar.gz
/root/converts/converts.tar.gz
/root/converts/converts/TencentCloud.dll
十二、locate:快速查找文件(基于数据库)
locate
命令用于快速查找文件或目录。与直接遍历文件系统来查找文件的 find 命令相比,locate 通过查询一个预先建立的文件名数据库来实现快速搜索,这个数据库通常位于 /var/lib/mlocate/mlocate.db
路径下。
为了保持搜索结果的准确性,系统通常会自动定期更新这个数据库(如通过 cron 任务每天更新一次)。但是,这意味着 locate 可能找不到最近创建或修改的文件,除非手动更新数据库使用
updatedb
命令。
1、执行错误:-bash: locate: command not found
如果执行locate
命令显示 “-bash: locate: command not found“错误信息,则需要手动安装一下:
# 安装locate
yum install -y mlocate
2、locate:语法格式
locate [参数] [文件名]
3、locate:常用参数
参数 | 描述 | 参数 | 描述 | 参数 | 描述 | 参数 | 描述 |
---|---|---|---|---|---|---|---|
-b | 仅匹配文件名 | -r | 使用正则表达式 | -c | 不输出文件名 | -S | 显示数据库的统计信息 |
-d | 设置数据库所在目录 | -w | 匹配完整的文件路径 | -i | 忽略大小写 | -l | 限制最大查找数量 |
-q | 静默执行模式 |
4、locate:参考事例
4.1、查询系统中名为“locate.txt”的文件
[root@converts ~]# locate locate.txt
/root/locate.txt
十三、which:查找命令文件
which
命令是一个非常有用的工具,主要用于帮助用户确定一个命令是否存在于系统中,以及该命令的准确位置。当在命令行中输入一个命令时,shell会根据环境变量PATH中列出的目录去搜索该命令的可执行文件。which命令正是基于这一机制来工作的。
1、which:语法格式
which [参数] [文件名]
2、which:常用参数
参数 | 描述 | 参数 | 描述 | 参数 | 描述 | 参数 | 描述 |
---|---|---|---|---|---|---|---|
-a | 显示PATH变量中所有匹配的可执行文件 | -n | 设置文件名长度(不含路径) | -p | 设置文件名长度(含路径) | --help | 显示帮助信息 |
3、which:参考事例
3.1、查看指定命令文件的路径
[root@converts ~]# which nginx
/usr/sbin/nginx
[root@converts ~]# which docker
/usr/bin/docker
暂无评论