欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux学习之路(二)

程序员文章站 2022-06-19 20:55:53
4.Linux文件查找工具。 Linux经常使用locate与find作为文件查找命令。find可以认为是系统自带的命令,功能也挺多但是使用方法相对有点繁琐。find查找的是实时文件数据,一般用于查询明确知道文件目录及文件名的时候,可以按照参数将查询出来的文件做进一步操作如:打印、删除、执行命令等。 ......

4.linux文件查找工具。

linux经常使用locate与find作为文件查找命令。find可以认为是系统自带的命令,功能也挺多但是使用方法相对有点繁琐。find查找的是实时文件数据,一般用于查询明确知道文件目录及文件名的时候,可以按照参数将查询出来的文件做进一步操作如:打印、删除、执行命令等。find命令对使用者的要求比较高,要相当熟练的操作,但是功能相对丰富。

相对于find命令locate命令就比较简单而且效率比较快,因为locate命令安装时会创建一个档案数据库,里面记录了当前文件系统的文件数据,locate命令查找的就是这个数据库中的数据所以效率相对find命令会比较高。缺点就是因为数据库中的数据不会实时更新,如果最近修改了文件名那么可能使用该命令就会搜索不到文件。要更新数据库需要执行updatedb命令执行locate数据库。一般在crontab定时任务中会加入一个定时任务每天跑一次updatedb,这个动作一般都会在命令安装的时候自动设置一次(未经确认,请自行研究)。另外一个比较耐用的功能就是locate默认是模糊查找的哦,所以这里选择安装locate命令作为查找工具

 

root@454009d432a4:/# apt-cache search locate            //搜索locate安装包
mlocate - quickly find files on the filesystem based on their name    //我们要安装的资源
dlocate - fast alternative to dpkg -l and dpkg -s
gameconqueror - locate and modify a variable in a running process (gui)
libcommons-discovery-java - locates classes that implement a given java interfac
e
libcommons-discovery-java-doc - locates classes that implement a given java inte
rface (documentation)
...
...
...
root@454009d432a4:/# apt-get install mlocate      //安装资源
...
...
...

root@454009d432a4:/# locate -h          //命令说明
usage: locate [option]... [pattern]...
search for entries in a mlocate database.

  -a, --all              only print entries that match all patterns
  -b, --basename         match only the base name of path names
  -c, --count            only print number of found entries
  -d, --database dbpath  use dbpath instead of default database (which is
                         /var/lib/mlocate/mlocate.db)
  -e, --existing         only print entries for currently existing files
  -l, --follow           follow trailing symbolic links when checking file
                         existence (default)
  -h, --help             print this help
  -i, --ignore-case      ignore case distinctions when matching patterns
  -p, --ignore-spaces    ignore punctuation and spaces when matching patterns
  -t, --transliterate    ignore accents using iconv transliteration when
                         matching patterns
  -l, --limit, -n limit  limit output (or counting) to limit entries
  -m, --mmap             ignored, for backward compatibility
  -p, --nofollow, -h     don't follow trailing symbolic links when checking file
                         existence
  -0, --null             separate entries with nul on output
  -s, --statistics       don't search for entries, print statistics about each
                         used database
  -q, --quiet            report no error messages about reading databases
  -r, --regexp regexp    search for basic regexp regexp instead of patterns
      --regex            patterns are extended regexps
  -s, --stdio            ignored, for backward compatibility
  -v, --version          print version information
  -w, --wholename        match whole path name (default)

root@454009d432a4:/# locate cron    //查找cron相关的文件
/etc/cron.d
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
/etc/crontab
/etc/cron.d/.placeholder
/etc/cron.daily/.placeholder
/etc/cron.daily/apt-compat
/etc/cron.daily/dpkg
/etc/cron.daily/mlocate      //安装mlocate资源时默认添加的每天定时任务
...
...
...

更详细的命令说明参考下面链接

资料来源链接:https://blog.csdn.net/looper66/article/details/55254682

 

5.linux管道命令“|”

管道命令是命令模式下非常好用的技术,是一种将命令的结果作为其他命令的输入信息的技术。

该命令只能将命令的正确结果输出传递给下一个命令作为输入,如果命令报错则不能传递给下个命令

举例:

//正常的结果
root@454009d432a4:/# apt-cache search make | more      //将apt-cache search make 命令的输出结果作为more命令的输入信息,因为more命令有分页输出的效果所以就形成了分页输出搜索结果的效果
cmake-extras - extra cmake utility modules
cmake-fedora - set of scripts and cmake modules that simplify the release proces
s
cmake-qt-gui - qt based user interface for cmake (cmake-gui)
colormake - simple wrapper around make to colorize output
colortail - log colorizer that makes log checking easier
--more--

//错误的结果
root@454009d432a4:/# 66666 | apt-cache search    //如果66666不是一个正确的命令所以apt-cache search没有输入,这时候相当于两个命令都会报错
bash: 66666: command not found            //66666的错误提示
e: you must give at least one search pattern    //apt-cache search的错误提示

资料链接:https://blog.csdn.net/wirelessqa/article/details/8968381

 

6.linux命令输出重定向“>”、“>>”

管道命令的概念其实跟 “>”与“>>”符号的概念非常像。只不过“>”与“>>”符号一般只作用于文件而不是命令。

以下将“>”与“>>”暂且称为输出重定向符号。输出重定向符号的作用是将命令的正确输出重定向到指定文件中(即写入到指定文件中),如果文件不存在则新增文件。“>”,“>>”区别在于“>”是将文件中的内容覆盖为输出内容,“>>”是在文件后面追加输出内容。例如:

root@454009d432a4:/# apt-cache search net-tools >> workdir/check.log    //将apt-cache search net-tools的结果写入workdir/check.log文件中,如果文件不存在自动创建文件
root@454009d432a4:/# apt-cache search net-tools > workdir/check.log    //将apt-cache search net-tools的结果覆盖workdir/check.log文件中的内容,如果文件不存在自动创建文件

资料链接:https://blog.csdn.net/qq_36076233/article/details/69061684