文章目录
pwd命令——查看当前的工作目录
pwd是用来实现用户查看当前的工作目录。
pwd 命令的基本格式为:
[root@host ~]# pwd
/root
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KgbMy93x-1680000968672)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327154606540.png)]](https://i-blog.csdnimg.cn/blog_migrate/4cbafd266466d5b7d6aeb1f5417702e0.png#pic_center)
cd命令——切换工作目录
cd:将用户的工作目录更改到其他位置
cd 目标位置:切换到目标位置
例如:
[root@host ~]# cd /etc/sysconfig/network-scripts/

cd ~或者cd:若不指定目标位置,切换到当前用户的宿主目录
例如:
//在/etc/sysconfig/network-scripts/目录下使用cd命令
[root@host network-scripts]# cd
//输入pwd查看是否在当前用户的宿主目录
[root@host ~]# pwd
/root
//进入/etc/sysconfig/network-scripts/目录
[root@host ~]# cd /etc/sysconfig/network-scripts/
//在/etc/sysconfig/network-scripts/目录下使用cd ~命令
[root@host network-scripts]# cd ~
//输入pwd查看是否在当前用户的宿主目录
[root@host ~]# pwd
/root

指定进入指定test用户的家目录
cd ~test

cd -:切换到上一次执行cd命令之前所在的目录
如
//进入/etc/sysconfig/network-scripts/目录
[root@host ~]# cd /etc/sysconfig/network-scripts/
//切换上一次执行cd命令的目录即root目录
[root@host network-scripts]# cd -
/root
[root@host ~]#

绝对路径
绝对路径是从linux最底层的根(/)开始算。如 cd /home/test, /home/test 就是绝对路径。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yzqMAXBz-1680000929644)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327163014765.png)]](https://i-blog.csdnimg.cn/blog_migrate/c22e181e81c2e46fbcb3b47f947be92c.png#pic_center)
相对路径
相对路径就是相对当前你所在路径开始算。如cd test , test就是指当前工作目录下的test目录,也就是相对路径。

相对路径的表现形式
| 表现形式 | 说明 | 示例 |
|---|---|---|
| 直接使用目录名或文件名 | 表示当前工作目录中的子目录、文件位置 | grub.conf |
| 以一个点号“.”开头 | 表示以当前的工作目录作为起点 | ./grub.conf |
| 以两个点号“…”开头 | 表示以当前目录的上一级目录(父目录)作为起点 | …/vmlinuz |
| 以“~用户名”形式开头 | 表示以指定用户的宿主目录作为起点 | ~teacher |
| 以“~”形式开头 | 表示以当前用户的宿主目录作为起点 | ~ |
cd 文件名
例如
cd abc
效果如下
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ICjLBiZP-1680000929645)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327165436649.png)]](https://i-blog.csdnimg.cn/blog_migrate/ccfb81b9a07f49b0429072c462642a2d.png#pic_center)
cd ./文件
例如
cd ./abc/
效果如下
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W3kNBH8X-1680000929645)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327165359523.png)]](https://i-blog.csdnimg.cn/blog_migrate/c6498548909e57995ad3ef39ec0738bf.png#pic_center)
cd …/文件
例如
//进入上一级目录
cd ../
效果如下
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gmCko6AB-1680000929646)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327165708812.png)]](https://i-blog.csdnimg.cn/blog_migrate/a3323009bd175a20b4b758b4fc09eb28.png#pic_center)
cd ~文件
例如
//进入root目录下的test目录
cd ~/test
效果如下
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lyrRWfGK-1680000929647)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327170141988.png)]](https://i-blog.csdnimg.cn/blog_migrate/e75fea025e42d299d4ffe45123a913c9.png#pic_center)
cd ~用户名/文件
例如
cd ~
效果如下
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KJ51SUrE-1680000929647)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327170349334.png)]](https://i-blog.csdnimg.cn/blog_migrate/fceece2a96763557c94233211d941003.png#pic_center)
ls命令——列表显示目录内容
ls,以列表的方式显示目录内容。ls显示目录中内容,包括子目录和文件相关属性信息
ls形式
ls [选项] [文件或目录...]
常用选项:-l -a -A -d -h -R --color
ls -l
以长格式(Long)显示文件和目录的列表,包括权限、大小、最后更新时间等详细信息。ll命令与ls -l功能相同。
如图,用ls -l 命令查看某一个目录会得到一个7个字段的列表
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VSAP93ld-1680000929647)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327180506075.png)]](https://i-blog.csdnimg.cn/blog_migrate/28493fa4bf2f3b6199db57d4afa272e4.png#pic_center)
drwxr-xr-x. 2 root root 6 3月 27 16:50 abc
第1字段:drwxr-xr-x.代表文件属性字
第一个字符代表的类型
- “-“表示该文件是一个普通文件
- "d”长示该文件是一个目录
- "l”表示该文件是一个软链接文件。类似于windows下的快捷方式
第一个字符的后面9个字母表示该文件或目录的权限位:
r表示读(查看、下载)、w表示写(添加、更改、删除、上传)、x表示执行(运行文件、切换目录)
其中前三个表示文件拥有者(属主)的权限,中间三个表示文件所属组拥有的权限,最后三个表示其他用户拥有的权限。
第2字段:2代表文件硬链接数
如果一个文件不是目录,此时这一字段表示这个文件所具有的硬链接数。如果是一个目录,则第2字段表示该目录所含子目录的个数。如果新建一个空目录,这个目录的第二字段就是2,表示该目录下有两个子目录。
第3字段:root代表文件\目录拥有者
第4字段:root代表文件\目录拥有者所在的组
第5字段: 6代表文件所占用的空间(默认以字节为单位)
如果是一个目录,则表示该目录的大小,而不是目录以及它下面的文件的总大小。Linux系统中一切皆文件,因此目录也是一种文件。
第6字段:3月 27 16:50代表文件\目录最近访问或修改时间
第7字段:abc代表文件名
如果是一个符号链接(软链接文件),那么会有一个“->”箭头符号,后面根一个它指向的文件名
ls -a
显示所有(All)子目录和文件的信息,包括名称以点号“.”开头的隐藏目录和隐藏文件。
如图,用命令查看
[root@host network-scripts]# ls -a
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4D1ryULd-1680000929648)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327183255769.png)]](https://i-blog.csdnimg.cn/blog_migrate/ab6141c480b0b4e8b7db35f31cbcff61.png#pic_center)
ls -A
与-a选项的作用基本类似,但有两个特殊隐藏目录不会显示,即表示当前的“."和表示父目录的“…”。
如图,用命令查看
[root@host network-scripts]# ls -A

ls -d
显示目录(Directory)本身的属性,而不是显示目录中的内容。
如图,用命令查看abc目录本身的属性
[root@host network-scripts]# ls -l -d abc/
drwxr-xr-x. 2 root root 6 3月 27 16:50 abc/
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3ndyoRGm-1680000929649)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327183949032.png)]](https://i-blog.csdnimg.cn/blog_migrate/66ef519873ff183f3a7234631aa5355a.png#pic_center)
ls -h
以更人性化(Human)的方式显示目录或文件的大小,默认的大小单位为字节(B),使用-h选项后将显示KB、MB等单位。此选项需要结合-l选项一起使用。
如图,用命令更加人性化显示列表格式
[root@host network-scripts]# ls -l -h
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BW5ckg1h-1680000929649)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327184247645.png)]](https://i-blog.csdnimg.cn/blog_migrate/322ba132547820f8a55f354e767ae26e.png#pic_center)
ls -R
以递归(Recursive)的方式显示目录及其子目录中的所有内容。
如图,用命令查看test下所有文件的属性
[root@host ~]# ls -l -R test/
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eG5VHBDK-1680000929649)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327184616410.png)]](https://i-blog.csdnimg.cn/blog_migrate/babf159dfc2f6afe899a833972fee5e7.png#pic_center)
ls --color
在字符模式中以颜色区分不同的文件。默认已开启。
通常情况下,深蓝色表示目录,白色表示一般文件,绿色表示可执行的文件,黄色标识设备文件,红色表示压缩文件。
ls -i
显示文件和目录的inode号。一个文件在系统中有特定的ID标识,文件名可能相同,inode号肯定不相同。除了硬链接文件,硬链接文件是别名。
如图,用命令查看所有文件inode号
[root@host ~]# ls -i
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zChRD51X-1680000929650)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327185027778.png)]](https://i-blog.csdnimg.cn/blog_migrate/fee2d3969039cc55d2ee6fe0c6667134.png#pic_center)
ls -t
以时间排序,最新的文件会排在上面。
如图,用命令通过最新时间排序查看
[root@host ~]# ls -lt
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mM8BnyDw-1680000929650)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327185340033.png)]](https://i-blog.csdnimg.cn/blog_migrate/ebcd1132880503d6964d685149f1fc08.png#pic_center)
ls -r
表示反向排序、倒序输出。
如图:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uTgWExnO-1680000929651)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327185557712.png)]](https://i-blog.csdnimg.cn/blog_migrate/4de537f458b1ff900126dfd4485d961a.png#pic_center)
结合通配符
“?":代表任意一个字符,有且一个字符
例如
[root@host test]# ls 1?1
121 131 141
如图可知,只有121、131、141符合搜索要求,“?”只代表一个字符。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dTwrmpYU-1680000929651)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327190114928.png)]](https://i-blog.csdnimg.cn/blog_migrate/b6bd7ca37e42486efb27dc217a902d5f.png#pic_center)
“*”:代表任意数个字符,可以是0个或者1个或者多个
例如
[root@host test]# ls 1*1
121 131 141 1abc1
如图可知,只有121、131、141、1abc1符合搜索要求,“*”代表任意字符个数。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PxRE1W1k-1680000929652)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327190716288.png)]](https://i-blog.csdnimg.cn/blog_migrate/588281b2b216dd115eccc1ea32a7bc20.png#pic_center)
“[]”:表示可以匹配字符组中的任意一个字符[abc]、[a-f]
[root@host test]# ls 1[234]1
121 131 141
如图可知,搜索1[234]1只有121、131、141符合要求,会取[]中的任意字符进行匹配。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VL15q2zv-1680000929652)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327190942171.png)]](https://i-blog.csdnimg.cn/blog_migrate/7c9fbc7814bc3b4d54302b87f8bb96ce.png#pic_center)
alias命令——设置别名
alias:通过别名机制简化常用的、比较长的命令
alias命令的基本格式为:
alias 命令别名='命令'
这里需要注意的是:
- 等号(=)前后不能有空格,否则就会出现语法错误了。
- 如果value中有空格或tab,则value一定要使用引号(单、双引号都行)括起来。
定义别名
了解了别名的基础知识之后,我们来看一个定义别名的例子:
[root@host ~]$ alias vi='vim'
这个例子定义了一个 vim 命令的别名,以后,当我们执行 vi 命令时,其实真正执行的是 vim 命令。是不是很简单呢!
如何查看别名
如果太热衷于设置别名,那么你就会面临着要记住很多别名的困扰,因此,学会查看所有已设置的别名,就显得尤为重要了。
查看别名的方法也很简单,直接输入 alias 命令,不加任何选项和参数即可:
[root@host ~]$ alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
可以看到,系统把当前可用的所有的别名都列出来了。仔细找一下,是不是可以看到刚才设置的那个别名了:alias vi='vim'。
查看单独命令的别名
如果我们只想查看一个单独命令是否设置了别名,那么方法有两个。
方法一:使用 alias 命令加参数
[root@host ~]$ alias vi
alias vi='vim'
方法二:使用快捷键
当在终端中输入一个命令后,按下 Ctrl+Alt+E 组合键,假如设置了别名,那么别名自动会变成实际的命令。
注意:这个快捷键并非在所有终端中都可行,有些终端的快捷键会和这个快捷键冲突,这样的话,该方法就不好使了。
如何取消别名
别名定义的太多了,往往带来的不是方便,而是困扰。所以我们也需要掌握删除别名的方法。
那么,如何删除一个别名呢?可以使用 unalias 命令。比如,我们想删除 vi=‘vim’ 这个别名,可以这样来操作:
//删除别名设置
[root@host ~]$ unalias vi
//再看看, 已经被删除了吧
[root@host ~]$ alias
alias cp='cp -i'
alias dirA='echo work directory is /root'
alias dirB='echo work directory is $PWD'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
经过仔细观察,确实已经找不到刚才定义的 vi 别名了。
如果你想删除所有的别名,直接使用 unalias 命令的-a选项即可,只不过要谨慎使用,避免你设置的所有的别名一下子都被清除了,自己还得一个一个重新设置回来。
//删除所有别名
[root@host ~]$ unalias -a
//空空如也
[root@host ~]$ alias
如何执行命令本身而非别名
别名虽好,但也有它的弊端,比如定义的别名恰好和某个命令重名了,这就麻烦了,Shell 中执行的将永远都是别名。这里,如果我们想执行真正的那个命令而非别名,该怎么办呢?有三种方法可以解决这个问题:
- 方案一:使用命令的绝对路径。
- 方案二:切换到命令所在的目录,执行./command。
- 方案三:在命令前使用反斜线(\)。
下面我们就通过示例来演示这三个方法:
//绝对路径方法
[root@host ~]$ /bin/vi test.sh
//明确指定当前路径的方法
[root@host ~]$ cd /bin
[root@host bin]$ ./vi ~/test.sh
//使用反斜线的方法
[root@host bin]$ cd
[root@host ~]$ \vi test.sh
这里推荐大家使用最后一种方法,因为它既方便又实用。
du命令——统计目录及文件空间占用情况
du:统计指定目录(或文件)所占用磁盘空间的大小.
du 命令的基本格式为:
du [选项] [文件或目录]
常用项
| 选项 | 说明 |
|---|---|
| -a | 统计磁盘空间占用时包括所有的文件,而不仅仅只是统计目录 |
| -h | 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果 |
| -s | 只统计所占用空间总的大小,而不是统计每个子目录、文件的大小 |
| –max-depth=n | 统计所有小于等于第n层的目录的总大小 |
注意选项-a和-s不可同时使用
du
如图,用命令查看
[root@host evolution]# du

du -a
-a选项让 du 输出包括文件夹和文件在内的完整统计信息。
如图,用命令查看
[root@host evolution]# du -a
统计磁盘空间占用时包括所有的文件
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uA2eBZFV-1680000929653)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327194714105.png)]](https://i-blog.csdnimg.cn/blog_migrate/6a46d804bcf4ede7cfdb4c156f5d1b46.png#pic_center)
du -h
-h选项常常代表“展示帮助信息”,即 --help 的缩写形式。但是,du 命令却不走寻常路,它的-h选项是 --human-readable 的缩写形式,表示以人类可读的形式展示磁盘使用量的单位名称(K/M/G)。
如图,用命令查看
[root@host evolution]# du -ah
以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OXZz4V00-1680000929654)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327194830141.png)]](https://i-blog.csdnimg.cn/blog_migrate/b20e1ea084d22412c5d2c10b1ffb8653.png#pic_center)
du -s
-s选项,是 --summarize 的缩写形式,其作用是对 du 的每一个给定参数计算其磁盘使用量,我们来看例子。
如图,用命令查看
[root@host evolution]# du -sh /root
79M /root
只统计所占用空间总的大小,而不是统计每个子目录、文件的大小
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QfOaLmnA-1680000929654)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327195111458.png)]](https://i-blog.csdnimg.cn/blog_migrate/3f18e1775d6bc2deef39a5bd10837d6a.png#pic_center)
du --max-depth=n
文件夹是可以嵌套的,有的时候,我们只想展示第一级或第二级子文件夹的信息,而不希望 du 统计的层次太深,那么我们可以用 --max-depth 选项来进行控制。
如图,用命令查看/var/log目录中子目录的大小
[root@host ~]# du -h --max-depth=1 /var/log/
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YmUku7zZ-1680000929654)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327213516884.png)]](https://i-blog.csdnimg.cn/blog_migrate/840ec081818d97efe2fce10b9155feb5.png#pic_center)
mkdir命令——创建新目录
mkdir 命令,是 make directories 的缩写,用于创建新目录,此命令所有用户都可以使用。
mkdir 命令的基本格式为:
mkdir [选项] 目录位置及名称
其中选项我们这里主要介绍-p选项,-p选项是递归创建所有目录,以创建 /home/test/demo 为例,在默认情况下,你需要一层一层的创建各个目录,而使用 -p 选项,则系统会自动帮你创建/home、/home/test 以及 /home/test/demo。
第一种是直接建立目录
[root@host test]# mkdir cangls
[root@host test]# ls
121 123 1234 12345 131 141 1abc1 222 234 345 a b c cangls
我们建立一个名为 cangls 的目录,通过 ls 命令可以查看到这个目录已经建立。注意,我们在建立目录的时候使用的是相对路径,所以这个目录被建立到当前目录下。
第二种是使用 -p 选项递归建立目录
mkdir -p 11/22/33/44
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pbuVzj48-1680000929655)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327214932515.png)]](https://i-blog.csdnimg.cn/blog_migrate/58d4a395b397ed90dee391bf64a6b8cc.png#pic_center)
还有另一种一次性创建多个目录的方式,例如
mkdir {a,b,c}
这里使用了{}的扩展功能,一次性创建了三个目录
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nprZvJt2-1680000929655)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327215209705.png)]](https://i-blog.csdnimg.cn/blog_migrate/9ab4ecb6c3b5177ad7004fd75ae90d21.png#pic_center)
在-p后面加-v可以显示目录创建的规则,例如
[root@host test]# mkdir /aa/bb/cc -pv
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NZ0Lk8WG-1680000929656)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327220053938.png)]](https://i-blog.csdnimg.cn/blog_migrate/205d24abc831afd226f6ea078c63b42b.png#pic_center)
touch命令——创建空文件
Linux的touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
touch 命令的基本格式为:
touch 文件..
touch文件有三种形式:修改文件时间、创建新的单个文件、创建新的多个文件。
第一种修改文件时间
touch test
如下图可知经过touch命令test的修改时间改变了
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ONUBm34N-1680000929657)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328135451584.png)]](https://i-blog.csdnimg.cn/blog_migrate/e5662044f91a7ec630bd85d6ba6dc46d.png#pic_center)
第二种创建新的单个文件
touch abc.txt
如下图可知使用touch命令后创建了一个txt文件
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QbLeusnd-1680000929657)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328140309923.png)]](https://i-blog.csdnimg.cn/blog_migrate/4bc1d47054f44809fad7a4a1a1ebf5f6.png#pic_center)
第三种创建新的多个文件
其中可以直接创建
touch 1.txt 2.txt 3.txt
如下图可知使用touch命令后同时创建了多个txt文件
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Eks3YVve-1680000929657)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328140054737.png)]](https://i-blog.csdnimg.cn/blog_migrate/b9d5a73b912aa327916d83b4ffcabf68.png#pic_center)
还有一种创建多个txt文件
touch {4,5,6}.txt
{}实现了扩展功能,可以用于一次性创建多个文件
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C20SlJnY-1680000929657)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328140742294.png)]](https://i-blog.csdnimg.cn/blog_migrate/89fcabc803f239bdf83d14e04c05f4cb.png#pic_center)
关于{}用法还有另一种
touch file{10..15}
{}中间的字符如果是连续的可以用..代替
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-36piCL4T-1680000929658)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328140956919.png)]](https://i-blog.csdnimg.cn/blog_migrate/73b1b886716ec113db468ffc7d45f9ac.png#pic_center)
ln命令——创建理解文件
ln是linux中一个非常重要命令。它的功能是为某一个文件在另外一个位置建立一个同步的链接。
ln 命令的基本格式为:
ln [-s] 源文件或目录... 链接文件或目标位置
链接文件类型
Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
软连接
软链接只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间
ln [-s] 源文件或目录... 链接文件或目标位置
例如,给文件创建软链接
ln -s log2013.log link2013
说明:为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sMjnmDEn-1680000929658)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328142748576.png)]](https://i-blog.csdnimg.cn/blog_migrate/d464cb5514f53c3ce593e6739d57c977.png#pic_center)
硬链接
硬链接会在你选定的位置上生成一个和源文件大小相同的文件
ln 源文件或目录... 链接文件或目标位置
例如,给文件创建硬链接
ln log2013.txt ln2013
说明:为log2013.txt创建硬链接ln2013,log2013.txt与ln2013的各项属性相同
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DcmYFrhF-1680000929658)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328145553992.png)]](https://i-blog.csdnimg.cn/blog_migrate/60ce4cd47ef9405342466111f39a6ffc.png#pic_center)
如果我将删除链接原文件,软链接文件变为不可用,硬链接文件只有硬链接个数发生改变,仍然可以用。
[root@host ~/test]# rm -rf log2013.log
[root@host ~/test]# ll
[root@host ~/test]# rm -rf log2013.txt
[root@host ~/test]# ll
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BM7RAYEe-1680000929659)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328145337410.png)]](https://i-blog.csdnimg.cn/blog_migrate/4b19fbbe06559cdca140dcb11d72fff5.png#pic_center)
软链接和硬链接区别
| 文件类型 | 软链接文件 | 硬链接文件 |
|---|---|---|
| 删除源文件后 | 失效 | 仍然可用(文件占用空间与源文件相同) |
| 使用范围 | 适用于文件和目录 | 仅适用于文件 |
| 保存位置 | 与源文件可在不同的文件系统中 | 必须与源文件在同一个文件系统(即同一个分区)中 |
| 与源文件的关系 | 相当于快捷方式 | 相当于给文件起要个别名 |
| inode号码 | inode号码不同 | inode号码相同 |
可以用图来表示硬链接和软链接。在Linux中,文件名和文件数据是分开存储的。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bBW3TtkM-1680000929660)(F:\博客存放\软链接硬链接.jpg)]](https://i-blog.csdnimg.cn/blog_migrate/e29932c9b4fd3ec629f9e8049143d529.png#pic_center)
这里有两点要注意:
第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;
第二,ln的链接又分软链接和硬链接两种,软链接就是ln –s 源文件 目标文件,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接 ln 源文件 目标文件,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。
ln指令用在链接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息。
cp命令——复制文件或目录
cp命令的功能是将给出的文件或目录拷贝到另一文件或目录中,就如同DOS下的copy命令 一样,功能非常强大。
cp 命令的基本格式为:
cp [选项] 源文件或目录 目标文件或目录
常用项
| 选项 | 说明 |
|---|---|
| -f | 覆盖目标同名文件或目录时不进行提醒,而直接强制复制 |
| -i | 覆盖目标同名文件或目录时提醒用户确认 |
| -p | 复制时保持源文件的权限、属主及时间标记等属性不变 |
| -r | 复制目录时必须使用此选项,表示递归复制所有文件及子目录 |
注意:复制多个文件或目录时,目标位置必须是目录,且目标目录必须已存在
cp命令基本用法
cp 命令既可以复制文件,也可以复制目录。我们先来看看如何复制文件,例如:
//建立源文件
[root@host ~]# touch cangls
//把源文件不改名复制到 /tmp/ 目录下
[root@host ~]# cp cangls /tmp/
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HfmdVfuN-1680000929661)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328152132248.png)]](https://i-blog.csdnimg.cn/blog_migrate/01dbe0094dbda542296c3c63253439fc.png#pic_center)
如果需要改名复制,则命令如下:
//改名复制
[root@host ~]# cp cangls /tmp/bols
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HuEAlEsM-1680000929661)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328152424130.png)]](https://i-blog.csdnimg.cn/blog_migrate/9d8c04fee95c616d2930bbbdb06b2802.png#pic_center)
如果复制的目标位置已经存在同名的文件,则会提示是否覆盖,因为 cp 命令默认执行的是“cp -i”的别名,例如:
//目标位置有同名文件,所以会提示是否覆盖
[root@host ~]# cp cangls /tmp/
cp:是否覆盖"/tmp/cangls"?y
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9wpUr0tn-1680000929662)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328152408414.png)]](https://i-blog.csdnimg.cn/blog_migrate/15f233c54eff3cbb1f30e2b4737ceba3.png#pic_center)
接下来我们看看如何复制目录,其实复制目录只需使用“-r”选项即可,例如:
//建立测试目录
[root@localhost ~]# mkdir movie
//目录原名复制
[root@localhost ~]# cp -r /root/movie/ /tmp/
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VXdK1ats-1680000929662)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328152648287.png)]](https://i-blog.csdnimg.cn/blog_migrate/c3399609989daf08b80c8f962996bb78.png#pic_center)
注意:cp是cp -i的别名,要想不使用cp -i的别名功能,有三种方法:取消别名(alias cp);使用cp这个外部命令的完整路径,进入/usr/bin/cp;\cp也能取消cp的别名功能。
rm命令——删除文件或目录
当 Linux 系统使用很长时间之后,可能会有一些已经没用的文件(即垃圾),这些文件不但会消耗宝贵的硬盘资源,还是降低系统的运行效率,因此需要及时地清理。rm 是强大的删除命令,它可以永久性地删除文件系统中指定的文件或目录。
rm 命令的基本格式为:
rm [选项] 源文件或目录 目标文件或目录
常用项
| 选项 | 说明 |
|---|---|
| -f | 强制删除(force),和 -i 选项相反,使用 -f,系统将不再询问,而是直接删除目标文件或目录。 |
| -i | 和 -f 正好相反,在删除文件或目录之前,系统会给出提示信息,使用 -i 可以有效防止不小心删除有用的文件或目录。 |
| -r | 递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有的子目录和文件。 |
注意,rm 命令是一个具有破坏性的命令,因为 rm 命令会永久性地删除文件或目录,这就意味着,如果没有对文件或目录进行备份,一旦使用 rm 命令将其删除,将无法恢复,因此,尤其在使用 rm 命令删除目录时,要慎之又慎。
基本用法
rm 命令如果任何选项都不加,则默认执行的是"rm -i 文件名",也就是在删除一个文件之前会先询问是否删除。例如:
[root@host ~/test]# touch cangls
[root@host ~/test]# rm cangls
//删除前会询问是否删除
rm:是否删除普通空文件"cangls"?y
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-12sL3vRm-1680000929662)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328154144396.png)]](https://i-blog.csdnimg.cn/blog_migrate/c1b05d89efafe1d71cca5b09445b244f.png#pic_center)
删除目录
如果需要删除目录,则需要使用"-r"选项。例如:
//递归建立测试目录
[root@host ~/movie]# mkdir -p test/lm/movie/jp
[root@host ~/movie]# rm test
rm:无法删除"/test/": 是一个目录
//#如果不加"-r"选项,则会报错
[root@host ~/movie]# rm -r test
//会分别询问是否进入子目录、是否删除子目录
rm:是否进入目录"test"? y
rm:是否进入目录"test/lm"? y
rm:是否进入目录"test/lm/movie"? y
rm:是否删除目录 "test/lm/movie/jp"?y
rm:是否删除目录 "test/lm/movie"?y
rm:是否删除目录 "test/lm"?y
rm:是否删除目录 "test"?y

大家会发现,如果每级目录和每个文件都需要确认,那么在实际使用中简直是灾难!
强制删除
如果要删除的目录中有 1 万个子目录或子文件,那么普通的 rm 删除最少需要确认 1 万次。所以,在真正删除文件的时候,我们会选择强制删除。例如:
//重新建立测试目录
[root@host ~/movie]# mkdir -p test/lm/movie/jp
//强制删除,一了百了
[root@host ~/movie]# rm -rf test
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NtNZOqtG-1680000929663)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328155055034.png)]](https://i-blog.csdnimg.cn/blog_migrate/e08a17907a0a4cd599f80a6fe7a7bcd2.png#pic_center)
加入了强制功能之后,删除就会变得很简单,但是需要注意,数据强制删除之后无法恢复,除非依赖第三方的数据恢复工具,如 extundelete 等。但要注意,数据恢复很难恢复完整的数据,一般能恢复 70%~80% 就很难得了。所以,与其想要数据恢复,不如养成良好的操作习惯。
虽然 -rf 选项是用来删除目录的,但是删除文件也不会报错。所以,为了使用方便,一般不论是删除文件还是删除目录,都会直接使用 -rf选项。
mv命令——移动文件或目录
mv 命令(move 的缩写),既可以在不同的目录之间移动文件或目录,也可以对文件和目录进行重命名。
mv 命令的基本格式为:
mv [选项]... 源文件或目录... 目标文件或目录
常用项
| 选项 | 作用 |
|---|---|
| -f | 强制覆盖,如果目标文件已经存在,则不询问, 直接强制覆盖 |
| -i | 如果目标文件已经存在,则询问用户 是否覆盖(默认选项) |
| -v | 显示文件或目录的移动过程 |
需要注意的是,同 rm 命令类似,mv 命令也是一个具有破坏性的命令,如果使用不当,很可能给系统带来灾难性的后果。
移动文件或目录
//移动之后,源文件会被删除,类似剪切
[root@host ~]# mv file15 /tmp
[root@host ~]# mkdir test
//也可以移动目录。和 rm、cp 不同的是,mv 移动目录不需要加入 "-r" 选项
[root@host ~]# mv test/ /tmp
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b7lwmuER-1680000929663)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328161135054.png)]](https://i-blog.csdnimg.cn/blog_migrate/8c1850ee61508f3c99319e251207603d.png#pic_center)
如果移动的目标位置已经存在同名的文件,则同样会提示是否覆盖,因为 mv 命令默认执行的也是 “mv -i” 的别名,例如:
//重新建立文件
[root@localhost ~]# touch cangls
[root@localhost ~]# mv cangls /tmp
//由于 /tmp 目录下已经存在 cangls 文件,所以会提示是否覆盖,需要手工输入 y 覆盖移动
mv:县否覆盖"tmp/cangls"?y
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jGpSXJRb-1680000929664)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328161404756.png)]](https://i-blog.csdnimg.cn/blog_migrate/9d882d5fc725c24274ee934b9939ba12.png#pic_center)
强制移动
之前说过,如果目标目录下已经存在同名文件,则会提示是否覆盖,需要手工确认。这时如果移动的同名文件较多,则需要一个一个文件进行确认,很不方便。
如果我们确认需要覆盖已经存在的同名文件,则可以使用 -f选项进行强制移动,这就不再需要用户手工确认了。例如:
//重新建立文件
[root@localhost ~]# touch cangls
//就算 /tmp/ 目录下已经存在同名的文件,由于"-f"选项的作用,所以会强制覆盖
[root@localhost ~]# mv -f cangls /tmp
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4KbWCJkc-1680000929664)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328161538442.png)]](https://i-blog.csdnimg.cn/blog_migrate/b2ec25176427383ee92f024209178be1.png#pic_center)
改名
如果源文件和目标文件在同一目录中,那就是改名。例如:
//把 lmls 改名为 bols
[root@host ~]# mv lmls bols
目录也可以按照同样的方法改名。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WjPsrZkb-1680000929664)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328161749627.png)]](https://i-blog.csdnimg.cn/blog_migrate/4effa9d864d75e8d853d43caeb82f1f7.png#pic_center)
which命令——查找命令文件存放目录
which 用于查看给定命令的绝对路径。
which 可指定一个或多个参数。对于它的每个参数,它将可执行文件的完整路径打印到 stdout。它通过使用与 bash(1) 相同的算法在环境变量 PATH 中列出的目录中搜索可执行文件或脚本来实现这一点。
which 命令的基本格式为:
//默认当找到第一个目标后不再继续查找
which 命令|程序名
//在所有搜索路径中查找
which -a 命令|程序名
如果想要知道某个命令所在路径可用用which来查找
[root@host ~]# which cd
/usr/bin/cd
[root@host ~]# which -a touch
/usr/bin/touch
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z2rg4fBG-1680000929665)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328162906320.png)]](https://i-blog.csdnimg.cn/blog_migrate/8e7b03e5571f5518c638ce6a0d6949b9.png#pic_center)
一般情况下,which 是一个别称,可以查看 which 的详细定义
root@host ~]# which which
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
/usr/bin/alias
/usr/bin/which
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L8xFu42F-1680000929665)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328163221059.png)]](https://i-blog.csdnimg.cn/blog_migrate/4d01c65a6027411d402eca78f2e51d79.png#pic_center)
打印帮助信息
[root@host ~]# which --help
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c7vzGMMw-1680000929665)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328163407792.png)]](https://i-blog.csdnimg.cn/blog_migrate/065d4951715ad057a90f05d207bfc81b.png#pic_center)
find命令——查找文件或目录
find是用来在文件系统上查找复合条件的文件。
find命令有非常强大的灵活性,可以指定丰富的搜索条件(如文件权限、属主、属组、文件类型、日期和大小等)来定位系统中的文件和目录,同时还支持对对搜索的结果进行命令操作。
find 命令的基本格式为:
find [搜索范围] [查找条件表达式]
注意:查找范围是指查找文件或子目录的目标位置;查找条件表达式是指按照条件类型查找。
常用查找条件类型
| 查找类型 | 关键字 | 说明 |
|---|---|---|
| 按名称查找 | -name | 根据目标文件的名称进行查找,允许使用“*”及“?”通配符 |
| 按文件大小查找 | -size | 根据目标文件的大小进行查找 一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件常用的容量单位包括kB(注意k是小写)、MB、GB |
| 按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
| 按文件类型查找 | -type | 根据文件的类型进行查找 文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件©等块设备文件(b):成块读取数据的设备(硬盘,内存,光驱) 字符设备文件©:按单个字符读取数据的设备(键盘,鼠标) |
查找条件
根据文件名查找——name
//查找 movie 目录下所有文件名以 .txt 结尾的文件
[root@host ~]# find /usr -name '[0-9].txt'
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b4r1Thkj-1680000929665)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328170750421.png)]](https://i-blog.csdnimg.cn/blog_migrate/2bc21d658a849ff42012fd9e5124b354.png#pic_center)
//查找 /usr 目录下所有文件名刚好为1个字符的文件
[root@host ~]# find /usr -name '?.txt'
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n0rR8zA9-1680000929666)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328170823913.png)]](https://i-blog.csdnimg.cn/blog_migrate/a75bfda854f15480b921da780f6c6710.png#pic_center)
//查找 /usr 下所有文件名以 .txt 结尾的文件或目录,且该文件的父目录必须是 src
[root@host ~]# find /usr -path '*/src/*.txt'
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lwMrAhJr-1680000929666)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328170954135.png)]](https://i-blog.csdnimg.cn/blog_migrate/55744385b6e44d0f7e5aaac9a94a8427.png#pic_center)
根据文件类型查找——type
//检索 /usr 下所有文件名以 python 开头的目录
[root@host ~]# find /usr -type d -name 'python*'
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ceIcTWz1-1680000929666)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328175327124.png)]](https://i-blog.csdnimg.cn/blog_migrate/c7b5517205eca448767407865f86b5c8.png#pic_center)
根据文件大小来查找——size
//查找大于100M的文件
[root@host ~]# find /sys -size +100M
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fi3zQWPp-1680000929667)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328175458929.png)]](https://i-blog.csdnimg.cn/blog_migrate/1e3b1090419b5facec16dfc3876e4464.png#pic_center)
根据文件的所属权来查找——user
//查找/var目录下属主为root,且属组为mail的所有文件或目录
find /var -user root -a -group mail

根据inode号进行查找——inum
//根据33823474查找对应文件为bols
[root@host ~]# find / -inum 33823474
/root/bols
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jv3DJgLb-1680000929667)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328181254210.png)]](https://i-blog.csdnimg.cn/blog_migrate/8419e1535d195cb411e0f37cf3f14cf8.png#pic_center)
根据修改时间来查找——mtime
//查找20天以前的文件
[root@host ~]# find -mtime +20
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WlHDVSIk-1680000929668)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328180400984.png)]](https://i-blog.csdnimg.cn/blog_migrate/c8cde2fe369bb9cefd71640f1bb29232.png#pic_center)
find命令实现多个查找
逻辑运算符
find命令支持一些复杂的搜索方式:逻辑与、逻辑或、逻辑非。而我这里主要介绍的是逻辑与(且)、逻辑或(或)。
-a:and,逻辑与
find命令也支持逻辑运算符选项,其中-a代表逻辑与运算,也就是-a的两个条件都成立,find搜索的结果才成立(其中有一个不成立都不行)。
例如
//在当前目录下搜索大于2MB,并且文件类型是普通文件的文件
[root@localhost ~ ] # find . -size +2M -a -type f
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uuFAMG68-1680000929668)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328182101495.png)]](https://i-blog.csdnimg.cn/blog_migrate/10d10a5aeaa5572a2abf6661c120dd51.png#pic_center)
-o:or,逻辑或
-o选项代表逻辑或运算,也就是-o的两个条件只要其中一个成立,find命令就可以找到结果。
例如:
//在当前目录下搜索文件要么是大小大于2MB的文件,要么是bols的文件,两个都可以搜索到。
[root@localhost ~ ] # find . -size +2M -o -name bols
./.cache/mozilla/firefox/uzbm9w8w.default-default/startupCache/startupCache.8.little
./.cache/mozilla/firefox/uzbm9w8w.default-default/startupCache/scriptCache-current.bin
./.mozilla/firefox/uzbm9w8w.default-default/places.sqlite
./.mozilla/firefox/uzbm9w8w.default-default/favicons.sqlite
./bols
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AIR09GjQ-1680000929668)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328182236338.png)]](https://i-blog.csdnimg.cn/blog_migrate/0d4b9ffad2eb885b997d2fcb5b78b492.png#pic_center)
exec用法
-exec参数后面跟的是Linux命令,它是以分号“;”为结束标志,由于各个系统中分号会有不同的意义,因此正在分号前面加上反斜杠转义符“\”。
find 命令exec用法的基本格式为:
find 搜索路径 [选项] 搜索内容 -exec 命令 {} \;
注意:
1.{}代表前面find查找出来的文件文件名
2.基本格式,只要写 -exec,命令最后一定要写 \;。
例如
//查找名字中含有“.txt”的普通文件,并使用ls -l命令将它列出来
[root@host ~]# find ./ -type f -a -name "*.txt" -exec ls -l {} \;
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AzE12SXu-1680000929669)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328183532351.png)]](https://i-blog.csdnimg.cn/blog_migrate/ed62fec999057a34a2d636f91520d57f.png#pic_center)
xargs命令
当在find命令中利用-exec对查找到的结果进行进一步处理时,有时可能会出现问题。这是因为-exec是将find所找到的结果一次性地送给后面的命令进行处理,有时候find可能会找到大量的文件,超出了后面的命令所能处理的参数范围,这时就会出现溢出错误,错误信息通常是“参数列太长”或“参数列溢出”,这时就可以使用xargs命令。xargs虽然本身是一个独立的Linux命令,但通常都是被用来配合find命令使用。通过xargs,可以将find所找到的结果分批次地送给之后的命令进行处理,从而避免出现溢出问题。
xagrs 命令的基本格式为
find 搜索路径 [选项] 搜索内容 | xargs 命令
例如
//查找名字中以“.cfg”结尾的文件,并使用ls -l命令将它列出来
[root@host ~]# find ./ -name "*.cfg" | xargs ls -l
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jfHpgUtq-1680000929669)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328184751831.png)]](https://i-blog.csdnimg.cn/blog_migrate/891765a5a3cebf2ab0d7264121a49b92.png#pic_center)
find命令删除
find 查看删除的三种方式,如删除当前目录下的txt文件:
方法1:xargs rm -f
[root@host ~/movie]# find ./ -type f -name "*txt" | xargs rm -f
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A8uEAw9m-1680000929669)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328185137792.png)]](https://i-blog.csdnimg.cn/blog_migrate/5d886b4fb9a8ce82634ce3080f1008e0.png#pic_center)
方法2:-exec rm -f
[root@host ~/movie]# find ./ -type f -name "*txt" -exec rm -f {} \;
-exec命令是查找到的每个文件调用一次rm命令,因此速度最慢
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KTqL4Jjf-1680000929669)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328185409470.png)]](https://i-blog.csdnimg.cn/blog_migrate/b4cfd43fab722cde4cf60038720a5886.png#pic_center)
方法3:-delete
[root@host ~/movie]# find ./ -type f -name "*txt" -delete
如果一次删除大量文件,建议采用第三种方式。经测试在删除千万级文件时,第三种方式比前两种快百倍。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DvciVnCx-1680000929670)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328185454170.png)]](https://i-blog.csdnimg.cn/blog_migrate/3afdf4cb4ba476b145e6b8493f891b84.png#pic_center)
本文详细介绍了Linux中的一些基本命令,包括pwd、cd、ls、alias、du、mkdir、touch、ln、cp、rm、mv、which和find,涵盖了查看工作目录、切换目录、列表显示目录内容、设置别名、统计文件空间占用、创建和管理目录、文件及链接、复制和删除文件或目录等内容。

被折叠的 条评论
为什么被折叠?



