分享23个能带你飞的 Linux 命令与技巧,这些是提高效率的很常用命令,get起来工作效率提高n倍和使用linux节省大量时间

说明

  • 和linux打交道几年,也算老司机了,平常这些用的多,效率提高不止一点点,也因为这些平常常用的命令用得多,有时候看到别人操作,就会感觉有点上头,为啥还总用一些很原始的方法啊,效率好低呀~
    当然 我这种心态没有别的意思 只是觉得小伙伴花在学习上的精力有点少了,这样咋行了,技术是一门持续学习的过程啊,不学习咋能保证自己的不可替代性呢! 搞技术还是要多学习才行啊。
    所以在这呢 也分享一些 我平常经常用到但非常实用的命令,玩linux 的小伙伴赶紧get起来吧 。

命令详解

1、切换回上一个工作目录

  • 假设你现在在/root目录,你现在需要去网卡目录查看网卡配置,然后做另一个操作需要回到/root目录。。。我这么描述够清晰吗?
  • 反正就是2个目录直接来回切换的一个快捷方法,废话不多说,直接看下面实例
    命令:cd -
[root@ciserver ~]# pwd
/root
[root@ciserver ~]# 
[root@ciserver ~]# cd /etc/sysconfig/network-scripts/
[root@ciserver network-scripts]# 
[root@ciserver network-scripts]# pwd # 进入到网卡路径了
/etc/sysconfig/network-scripts
[root@ciserver network-scripts]# 
[root@ciserver network-scripts]# cd - #快速回到之前的路径
/root
[root@ciserver ~]# 
[root@ciserver ~]# pwd 
/root
[root@ciserver ~]# 
[root@ciserver ~]# cd - #又回到之前的路径
/etc/sysconfig/network-scripts
[root@ciserver network-scripts]# 
[root@ciserver network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@ciserver network-scripts]# 

2、快速回到/root目录【主目录】

  • 命令:cd ~ 或者 cd
    可以在任何路径执行,执行后都会直接回到主目录里,如下
[root@ciserver network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@ciserver network-scripts]# cd
[root@ciserver ~]# 
[root@ciserver ~]# pwd
/root
[root@ciserver ~]# 
[root@ciserver ~]# cd /var/log/
[root@ciserver log]# 
[root@ciserver log]# cd ~
[root@ciserver ~]# 
[root@ciserver ~]# pwd
/root
[root@ciserver ~]# 

3、使用tab键进行自动完成

  • 这个呢 ,其实就是自动补全,简单来说就是已有的命令输一半,然后按tab会自动显示后面的内容,不仅可以补全命令,也可以补全文件名
    如下:
[root@ciserver ~]# net # 按tab出现下面net开头的命令
netreport           netstat             nettle-lfib-stream
netscsid            nettle-hash         
[root@ciserver ~]# #netstat 
[root@ciserver ~]# 
[root@ciserver ~]# mkdir -p /2022/test{1..10}
[root@ciserver ~]# ls /2022/test #按tab出现下面所有test开头的文件
test1/  test2/  test4/  test6/  test8/  
test10/ test3/  test5/  test7/  test9/  
[root@ciserver ~]# ls /2022/test

4、列出目录详细内容

  • 简单来说,就是列出目录下的文件详细信息,如所属用户啊文件大小啊创建时间啊之类的。
    命令:ls -l ,但我们一般用ll缩写效果一样。
[root@ciserver test]# cd /2022
[root@ciserver 2022]# ll
total 0
drwxr-xr-x 2 root root 6 Feb 26 17:07 test1
drwxr-xr-x 2 root root 6 Feb 26 17:07 test10
drwxr-xr-x 2 root root 6 Feb 26 17:07 test2
drwxr-xr-x 2 root root 6 Feb 26 17:07 test3
drwxr-xr-x 2 root root 6 Feb 26 17:07 test4
drwxr-xr-x 2 root root 6 Feb 26 17:07 test5
drwxr-xr-x 2 root root 6 Feb 26 17:07 test6
drwxr-xr-x 2 root root 6 Feb 26 17:07 test7
drwxr-xr-x 2 root root 6 Feb 26 17:07 test8
drwxr-xr-x 2 root root 6 Feb 26 17:07 test9
[root@ciserver 2022]# 

5、快速列出目录下所有文件大小

  • 假设,现在某个目录下有很多文件,要你列出所有文件大小,你用啥命令? ll? 肯定不行的嘛
    命令:du -sh *【列出当前目录下所有文件大小】
# 先创建文件测试
[root@ciserver test]# cd /2022
[root@ciserver 2022]# ll
total 0
drwxr-xr-x 2 root root 6 Feb 26 17:07 test1
drwxr-xr-x 2 root root 6 Feb 26 17:07 test10
drwxr-xr-x 2 root root 6 Feb 26 17:07 test2
drwxr-xr-x 2 root root 6 Feb 26 17:07 test3
drwxr-xr-x 2 root root 6 Feb 26 17:07 test4
drwxr-xr-x 2 root root 6 Feb 26 17:07 test5
drwxr-xr-x 2 root root 6 Feb 26 17:07 test6
drwxr-xr-x 2 root root 6 Feb 26 17:07 test7
drwxr-xr-x 2 root root 6 Feb 26 17:07 test8
drwxr-xr-x 2 root root 6 Feb 26 17:07 test9
[root@ciserver 2022]# dd if=/dev/zero of=test11.db bs=8k count=300
300+0 records in
300+0 records out
2457600 bytes (2.5 MB) copied, 0.00280309 s, 877 MB/s
[root@ciserver 2022]# dd if=/dev/zero of=test12.db bs=8k count=3000
3000+0 records in
3000+0 records out
24576000 bytes (25 MB) copied, 0.0253748 s, 969 MB/s
[root@ciserver 2022]# dd if=/dev/zero of=test13.db bs=8k count=7000
7000+0 records in
7000+0 records out
57344000 bytes (57 MB) copied, 0.0692222 s, 828 MB/s
[root@ciserver 2022]# 
[root@ciserver 2022]# du -sh * #查看当前目录下所有文件大小,方便方便你自己看
0       test1
0       test10
2.4M    test11.db
24M     test12.db
55M     test13.db
0       test2
0       test3
0       test4
0       test5
0       test6
0       test7
0       test8
0       test9
[root@ciserver 2022]#
[root@ciserver 2022]# du -sh test11.db  # 也可以查看单个文件大小,就是把*换成文件名
2.4M    test11.db
[root@ciserver 2022]# 

6、在一条语法中运行多个命令

  • 加入你想运行多个结果,可又不想等待上一个命令执行完了再执行下一个,那么就可以使用;分隔符。这样,可以在一行中运行许多命令,无需等待先前的命令完成后再执行其他任务。【无论是脚本中还是命令行中,这个方法通用。】
  • 命令:command_1; command_2; command_3
    如下【这种有个问题就是,运行的结果前面不会有主机名这些信息,写脚本的应该知道这种结果和脚本运行逻辑一致】
[root@ciserver 2022]# sleep 3 ; ls ; cd ; pwd
test1   test11.db  test13.db  test3  test5  test7  test9
test10  test12.db  test2      test4  test6  test8
/root
[root@ciserver ~]# 

7、仅在上一个命令成功的情况下,才能在一个命令中运行多个命令

  • 在上一个命令中,了解了如何在一个命令中运行多个命令以节省时间。但很多时候你必须确保命令不会失败才能执行下一条命令,那怎么办?
    比如你要构建代码,然后在构建成功的情况下才接着运行make。
    在这种情况下,可以使用&&分隔符。&&确保下一条命令仅在上一条命令成功执行时才运行下一个命令。
  • 命令:command_1 && command_2 【应该很好理解吧,1执行成功才会执行2】
    如:
[root@ciserver ~]# sleep 2 && pwd #正常情况
/root
[root@ciserver ~]# 
[root@ciserver ~]# slep 2 && pwd #前面执行失败后面是不会运行的
bash: slep: command not found...
[root@ciserver ~]# 

8 、光标移至行首或行尾

  • 假设您正在键入一个长命令,并且在途中您意识到必须在开始时进行一些更改。您将使用几次向左键击移动到行的开头。并且类似地进行到该行的末尾。

  • 命令:Ctrl + A转到行的开头,并使用Ctrl + E转到结尾。【也可以在此处使用Home和End键】

  • 改变的是光标,这个能理解吗?
    我用一张图片来表示吧,不理解的你自己试验一下即可。
    在这里插入图片描述

9、实时读取日志文件

  • 在需要在应用程序运行时分析日志的情况下,可以将tail命令与-F选项一起使用。
    命令:tail -F file.log
  • 这个我用得最多的是查看系统日志,比如某个服务重启报错,我就会用到这个命令,很好用的。
# 一个窗口执行这个命令【此时就不能再输入命令了】
[root@ciserver ~]# tail -F /var/log/messages 

# 然后新打开一个窗口,执行启动服务命令,上面就会动态的展示启动过程了

10、读取压缩日志而不解压缩【zcat】

  • 先丢一些这个命令的说明
    • 服务器日志通常被gzip压缩以节省磁盘空间。这给分析日志的开发人员或系统管理员带来了一个问题。您可能必须将其scp到本地,然后提取它来访问文件,因为有时您没有提取日志的写权限。
  • 值得庆幸的是,在这种情况下,z命令可以帮助您。z命令提供了用于处理日志文件(例如less,cat,grep等)的常规命令的替代方法。
  • 这样您就可以使用zlesszcatzgrep等命令查看压缩包的内容,甚至不必显式提取压缩文件。
  • 使用,简单来说,就是,/var/log/里面会有很多日期.zip结尾的日志,这是系统自动打包的,那么我们就可以用zcat file.zip来查看这个文件,不用解压了,超级方便。【更简单来说就是:不解压缩读取压缩文件】
[root@ciserver log]# zcat 20220226messages.zip | more
Feb 26 17:48:54 ciserver kubelet: E0226 17:48:54.503910    8588 kubelet.go:2298]
 "Error getting node" err="node \"ciserver\" not found"
Feb 26 17:48:54 ciserver kubelet: E0226 17:48:54.604862    8588 kubelet.go:2298]
 "Error getting node" err="node \"ciserver\" not found"
Feb 26 17:48:54 ciserver kubelet: E0226 17:48:54.705845    8588 kubelet.go:2298]
 "Error getting node" err="node \"ciserver\" not found"
Feb 26 17:48:54 ciserver kubelet: E0226 17:48:54.806280    8588 kubelet.go:2298]
 "Error getting node" err="node \"ciserver\" not found"
Feb 26 17:48:54 ciserver kubelet: E0226 17:48:54.906399    8588 kubelet.go:2298]
 "Error getting node" err="node \"ciserver\" not found"
Feb 26 17:48:55 ciserver kubelet: E0226 17:48:55.006744    8588 kubelet.go:2298]
 "Error getting node" err="node \"ciserver\" not found"
Feb 26 17:48:55 ciserver kubelet: E0226 17:48:55.107034    8588 kubelet.go:2298]
 "Error getting node" err="node \"ciserver\" not found"
Feb 26 17:48:55 ciserver kubelet: E0226 17:48:55.207706    8588 kubelet.go:2298]
 "Error getting node" err="node \"ciserver\" not found"
Feb 26 17:48:55 ciserver kubelet: E0226 17:48:55.308236    8588 kubelet.go:2298]
 "Error getting node" err="node \"ciserver\" not found"
Feb 26 17:48:55 ciserver kubelet: E0226 17:48:55.408528    8588 kubelet.go:2298]
 "Error getting node" err="node \"ciserver\" not found"
Feb 26 17:48:55 ciserver kubelet: E0226 17:48:55.508863    8588 kubelet.go:2298]
 "Error getting node" err="node \"ciserver\" not found"
Feb 26 17:48:55 ciserver kubelet: E0226 17:48:55.609763    8588 kubelet.go:2298]
[root@ciserver log]# 

11、使用 less读取文件

  • 要查看文件的内容,cat不是最佳选择,特别是如果文件很大。cat命令将在屏幕上显示整个文件。
    这个时候用less file则默认以more的形式展现,根本不会卡死,超级好用好嘛!
[root@ciserver 2022]# less /var/log/messages #只会展示一页内容,不会刷屏
Feb 20 03:06:01 ciserver kubelet: E0220 03:06:01.713608    8584 cni.go:380] "Error deleting pod from network" err="error getting ClusterInformation: Get \"https://[10.96.0.1]:443/apis/crd.projectcalico.org/v1/clusterinformations/default\": dial tcp 10.96.0.1:443: connect: connection refused" pod="kube-system/calico-kube-controllers-78d6f96c7b-kdqvv" podSandboxID={
    
    Type:docker ID:505df20c20235353f503b8d3cfa6e4912ebc5f6c5d90697760f9bdd4af3bf3ce} podNetnsPath="" networkType="calico" networkName="k8s-pod-network"
Feb 20 03:06:01 ciserver kubelet: E0220 03:06:01.714977    8584 remote_runtime.go:144] "StopPodSandbox from runtime service failed" err="rpc error: code = Unknown desc = networkPlugin cni failed to teardown pod \"calico-kube-controllers-78d6f96c7b-kdqvv_kube-system\" network: error getting ClusterInformation: Get \"https://[10.96.0.1]:443/apis/crd.projectcalico.org/v1/clusterinformations/default\": dial tcp 10.96.0.1:443: connect: connection refused" podSandboxID="505df20c20235353f503b8d3cfa6e4912ebc5f6c5d90697760f9bdd4af3bf3ce"
Feb 20 03:06:01 ciserver kubelet: E0220 03:06:01.715054    8584 kuberuntime_gc.go:176] "Failed to stop sandbox before removing" err="rpc error: code = Unknown desc = networkPlugin cni failed to teardown pod \"calico-kube-controllers-78d6f96c7b-kdqvv_kube-system\" network: error getting ClusterInformation: Get \"https://[10.96.0.1]:443/apis/crd.projectcalico.org/v1/clusterinformations/default\": dial tcp 10.96.0.1:443: connect: connection refused" sandboxID="505df20c20235353f503b8d3cfa6e4912ebc5f6c5d90697760f9bdd4af3bf3ce"
Feb 20 03:06:01 ciserver kubelet: E0220 03:06:01.722624    8584 kubelet.go:2298] "Error getting node" err="node \"ciserver\" not found"
/var/log/messages
  • 而且,less可以同时用vi,退出vi又回到less界面,真的超级方便!!!!
    命令:less -N file
    #按下v键来编辑文件
    #退出编辑器后,你可以继续用less浏览了
    #注:也可以在更少的范围内搜索字词,按页移动,高亮与行号等。
# 写点测试文件
[root@ciserver 2022]# cat << ! >test.txt
> 1231
> 1241
> dfa
> cbva
> 31
> ga
> 123
> gggg
> !
[root@ciserver 2022]#

#开始查看
[root@ciserver 2022]# less -N test.txt 
      1 1231
      2 1241
      3 dfa
      4 cbva
      5 31
      6 ga
      7 123
      8 gggg
# 这个时候我应该进入vi了
!vi +8 test.txt
1231
1241
dfa
cbva
31
ga
123
gggg
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
# 我删了前面几行数字,下面继续回到less界面,可以看到前面几行数字已经没了
"test.txt" 5L, 20C written
...skipping...
      1 cbva
      2 31
      3 ga
      4 123
      5 gggg
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
[root@ciserver 2022]# # q结束后,刚才的操作也是生效的
[root@ciserver 2022]# cat test.txt 
cbva
31
ga
123
gggg
[root@ciserver 2022]# 

12、使用 !$ 重新使用上一个命令中的最后一项

  • 在许多情况下,使用上一个命令的参数很方便。
    命令:$!,这个就是重复执行上一条命令的,不多做解释。
[root@ciserver 2022]# pwd
/2022
[root@ciserver 2022]# !$
pwd
/2022
[root@ciserver 2022]# 

13、快速调用上一条命令中最后一个参数

  • 组合键esc + . ,如字面意思,调用上一句命令中的最后一个参数或命令
    我用得蛮多,你用过一次以后,应该也会经常用到,如下
[root@ciserver 2022]# mkdir ccxhero
[root@ciserver 2022]# cd ccxhero #我在这按esc+. 就会自动出现ccxhero
[root@ciserver ccxhero]# 

14、使用别名来修正错别字

  • 你可能已经知道Linux中的别名命令是什么。但你经常因为敲快而导致命令字母顺序出现问题,你可以选择提高代码正确率,也可以选择用它们来修正打字错误。
  • 例如,您可能经常将grep输入为gerp。如果您以这种方式在您的bashrc中放置一个别名:
    这样设置以后,grep=gerp,不会再报错。
[root@ciserver ccxhero]# tail -n1 /etc/bashrc
[root@ciserver ccxhero]# 
alias gerp=grep

15、在Linux终端中复制粘贴

  • 这一点有点模棱两可,因为它取决于Linux发行版和终端应用程序。但通常,您应该能够使用以下快捷键复制粘贴命令:
    选择要复制的文本,然后右键单击以粘贴(在Putty和其他Windows SSH客户端中有效)

  • 选择要复制的文本,然后单击鼠标中键(滚动按钮)以进行粘贴,某些工具以可以,如:secureCRT,我一直在用这个工具,也一直在用这个快捷键,很方便的,而且不需要设置。
    组合键:Ctrl + Shift + C表示复制,Ctrl + Shift + V表示粘贴

16、终止正在运行的命令/进程

  • 这可能太明显了。如果有一个命令正在运行运行,并且您想退出该命令,则可以按Ctrl + C停止该正在运行的命令。
  • 其实这个更多的是用于脚本中,因为脚本错了可能会导致脚本卡主,用这个组合键停止这样子。
    命令也可以,如:
[root@ciserver ccxhero]# sleep 100
^C
[root@ciserver ccxhero]# 

17、清空文件而不删除它

  • 如果只想清空文本文件的内容而不删除文件本身,则可以使用以下命令:
    命令:> 文件名 【这是最简单的清空】
    如:
[root@ciserver ccxhero]# cd ..
[root@ciserver 2022]# cat test.txt 
cbva
31
ga
123
gggg
[root@ciserver 2022]# > test.txt
[root@ciserver 2022]# cat test.txt
[root@ciserver 2022]# 

18、轻松搜索使用过的命令

  • 假如你现在想知道你之前使用过的一条命令,我们都知道可以用history | grep command来过滤,但说了是高效,肯定是不会说这种很常规的方法的,我这说你可能没听说过的方法,一个更高效的方法。
  • 反向搜索,命令:ctrl + r
    反向搜索是你的救星。你可以使用搜索词在历史记录中搜索命令。
    只需使用ctrl + r键即可启动反向搜索并键入命令的某些部分。它将查询历史记录,并向您显示与搜索词匹配的命令。
  • 使用,出来结果以后直接回车,若是不想使用,ctrl+c结束即可
(reverse-i-search)`slee': sleep 2 && pwd # 看,我按了ctrl+r ,变成这样了,slee是我输入的内容,后面是过滤结果,直接回车以后就执行该命令了
[root@ciserver ~]# sleep 2 && pwd
/root
[root@ciserver ~]# 

19、查找是否有包含特定文本的文件

  • 在Linux命令行中有多种搜索和查找方法。但是,当您只想查看是否有包含特定文本的文件时,可以使用以下命令:grep -Pri 要搜索的字符串 路径
  • 但我一般不用grep,而是用find
    语法:find / -name *filename*[如果*报错,则*前面加个\转移符】意思是从根开始查找所有带有filename名字的文件或者路径【*表示啥应该不需要我说了吧】,我用的更多的是,查找某个文件在哪个路径用。
[root@ciserver 2022]# find / -name test\*.db
/2022/test11.db
/2022/test12.db
/2022/test13.db
[root@ciserver 2022]# 

20、mount -a 验证

  • 一般我们都先手动挂载,然后执行df -Th查看挂载的格式是什么,然后吧文件写入到/etc/fstab中,然后卸载umount该挂载,执行mount -a,如果能正常挂载,则表示写入挂载信息没问题
    验证这个的意义就是,如果写入fstab有问题,虚拟机重启后是进不了系统的,所以养成个号习惯是好事。

21、vim中的替换

  • vim是啥,替换是啥,应该不需要我说了吧
  • 快捷键:r,vim中安入r以后,就可以直接替换光标所在处的字符了【R是一直替换,r是替换一个光标字符】
    这个不好演示,自己尝试一下,有问题留言。 这个很常用的,有时候发现vim中就错那么一两个字符,r直接替换就好了,不需要按i再exit,麻烦,浪费时间。

22、 解除Linux终端意外冻结的 Ctrl + S

  • 在很多类Unix 的系统上,Ctrl-S都有特殊的含义:它会“冻结”终端(它曾经被用来暂停快速滚动)。因为“保存”一般也是用这个快捷键,所以经常会有人不假思索地按下这个快捷键,结果大多数人都会被搞糊涂(我也经常犯这个错误)。解冻终端是用Ctrl-Q,所以如果你忽然发觉终端看起来被冻结了,试一下Ctrl-Q,看能不能释放它。
  • 比如一些secureCRT工具,我们按ctrl-s也是会被冻结的【表现就是无法输入命令,直接像卡死一样,其实我也经常遇到,最开始我都是直接断开链接然后重新链接】
    • ctrl-s是冻结
    • ctrl-q是解冻
  • 我这演示一下
[root@ciserver ~]# pwd # 我按ctrl-s冻结了,按任何东西都是没有反映的
[root@ciserver ~]# pwd
/root
[root@ciserver ~]# 
[root@ciserver ~]# 
[root@ciserver ~]# 
[root@ciserver ~]# 
[root@ciserver ~]# 
[root@ciserver ~]# 
[root@ciserver ~]# 
# 当我ctr-q以后,会执行我刚才输入的命令【我按了很多回车】

23、对任何命令都可使用帮助命令(help、man)

  • 查看命令帮助的2个方法
    • 1、command --help 查看该命令的帮助
    • 2、man command 也是查看帮助,但这个更详细
[root@ciserver 2022]# find --help
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

default path is the current directory; default expression is -print
expression may consist of: operators, options, tests, and actions:

operators (decreasing precedence; -and is implicit where no others are given):
      ( EXPR )   ! EXPR   -not EXPR   EXPR1 -a EXPR2   EXPR1 -and EXPR2
      EXPR1 -o EXPR2   EXPR1 -or EXPR2   EXPR1 , EXPR2

positional options (always true): -daystart -follow -regextype

normal options (always true, specified before other expressions):
      -depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf
      --version -xautofs -xdev -ignore_readdir_race -noignore_readdir_race

tests (N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N
      -cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME
      -ilname PATTERN -iname PATTERN -inum N -iwholename PATTERN -iregex PATTERN
      -links N -lname PATTERN -mmin N -mtime N -name PATTERN -newer FILE
      -nouser -nogroup -path PATTERN -perm [-/]MODE -regex PATTERN
      -readable -writable -executable
      -wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N
      -used N -user NAME -xtype [bcdpfls]
      -context CONTEXT


actions: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print 
      -fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit
      -exec COMMAND ; -exec COMMAND {
    
    } + -ok COMMAND ;
      -execdir COMMAND ; -execdir COMMAND {
    
    } + -okdir COMMAND ;

Report (and track progress on fixing) bugs via the findutils bug-reporting
page at http://savannah.gnu.org/ or, if you have no web access, by sending
email to <[email protected]>.
[root@ciserver 2022]# 

FIND(1)                     General Commands Manual                    FIND(1)

NAME
       find - search for files in a directory hierarchy

SYNOPSIS
       find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

DESCRIPTION
       This  manual page documents the GNU version of find.  GNU find searches
       the directory tree rooted at each given file  name  by  evaluating  the
       given  expression  from left to right, according to the rules of prece‐
       dence (see section OPERATORS), until the outcome  is  known  (the  left
       hand  side  is  false  for and operations, true for or), at which point
       find moves on to the next file name.

       If you are using find in an environment  where  security  is  important
       (for  example  if  you  are  using  it  to  search directories that are
       writable by other users), you should read the "Security Considerations"
       chapter  of  the findutils documentation, which is called Finding Files
       and comes with findutils.   That document  also  includes  a  lot  more
       detail  and discussion than this manual page, so you may find it a more
       useful source of information.
 Manual page find(1) line 1 (press h for help or q to quit)

猜你喜欢

转载自blog.csdn.net/cuichongxin/article/details/123117912