Linux 入门详解 13

175 阅读2分钟

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

注意在输入以下代码时,若环境报错,可采取下列措施

locate /usr/share/*.jpg

报错及解决

如果其他环境中执行该命令提示 zsh: no matches found: /usr/share/*.jpg

  • 问题

zsh试图将*通配符展开,在本地未找到对应文件,于是出现“no matches”的错误。

  • 解决

设置nonomatch选项,让zsh匹配失败时不报错并使用原本内容。
具体做法是在~/.zshrc文件里写入setopt nonomatch

第一步:使用 vim 打开.zshrc

vim ~/.zshrc

第二步:按i进入编辑模式,添加下列代码,按:wq!保存

setopt nonomatch

第三步:重新加载

source ~/.zshrc

如果想只统计数目可以加上 -c 参数,-i 参数可以忽略大小写进行查找,whereis 的 -b-m-s 同样可以使用。

  1. which 

which 本身是 Shell 内建的一个命令,我们通常使用 which 来确定是否安装了某个指定的程序,因为它只从 PATH 环境变量指定的路径中去搜索命令并且返回第一个搜索到的结果。也就是说,我们可以看到某个系统命令是否存在以及执行的到底是哪一个地方的命令。

which man
  1. find 

find 应该是这几个命令中最强大的了,它不但可以通过文件类型、文件名进行查找而且可以根据文件的属性(如文件的时间戳,文件的权限等)进行搜索。

基本命令格式为 find【path】【option】【action】

find /etc/ -name interfaces

(注意 find 命令的路径是作为第一个参数的)

参数说明
-atime最后访问时间
-ctime最后修改文件内容的时间
-mtime最后修改文件属性的时间

以 -mtime 参数举例:

  • -mtime n:n 为数字,表示为在 n 天之前的“一天之内”修改过的文件
  • -mtime +n:列出在 n 天之前(不包含 n 天本身)被修改过的文件
  • -mtime -n:列出在 n 天之内(包含 n 天本身)被修改过的文件
  • -newer file:file 为一个已存在的文件,列出比 file 还要新的文件名

5-3.png