Linux下搜索文件find、which、whereis、locate

时间:2022-05-27 17:58:23

Linux下搜索文件find、which、whereis、locate:

  - which 寻找“执行文件”

    - -a 将所有可找到的命令均列出,而不仅仅列出第一个找到的命令名称

  - whereis 寻找特定文件   whereis [-bmsu] 文件或目录

    - -b : 只找二进制文件

    - -m : 只找在帮助文件manual路径下的文件

    - -s :  只找源文件

    - -u :  没有帮助文件的文件

  - locate [filename]

    -- 例:  locate passwd

  - find,搜索文件及目录。在linux中,因为文件系统是以级别式的结构来组成的,所以要在整个系统中找到特定的文件和目录并不是件容易的事。而“find”命令可以解决上述问题 (鸟哥linux第二版 p137页)

  - 在特定的目录下搜索并显示指定名称的文件和目录

    【案例】find / -name man:意思是说从根目录开始搜索名称为man的文件或目录

  - 搜索一段时间内被存取/变更的文件或目录

    【案例】find /home -amin -10:十分钟内存取的文件或目录

    【案例】find /home -atime -10:十小时内存取的文件或目录

    【案例】find /home -cmin -10:十分钟内更改过的文件或目录

    【案例】find /home -ctime +10:十小时前更改过的文件或目录

  - 搜索指定大小的文件

    【案例】find /home -size +10k:意思是说查找/home目录下大小为10k的文件

  - 重定向命令

    - ls -l > a.txt,列表的内容写入文件a.txt中(覆盖写)

    - ls -al >> aa.txt,列表的内容追加到文件aa.txt的末尾

    - 从文件中输入信息:database_program < database_data

    - en,查看环境变量

  - 压缩和解压

    - 以zip和unzip处理.zip文件

    - zip命令的基本使用方法

    - zip file.zip *:zip后接压缩后的文件名,在它的后面输入要压缩的文件即可

  - 压缩后,自动删除原文件

    【案例】zip m file.zip to.txt:把to.txt文件压缩成file.zip文件,to.txt会自动删除的

  - 将子目录一起压缩

    【案例】zip ‐r file.zip *:将当前目录下的子目录一起压缩

  - 忽略子目录的内容

    【案例】zip ‐j file.zip *

  - 将已压缩的或没有必要压缩的文件去掉

    【案例】zip ‐n .mpg: .jpg: .gif:第一种文件中间要用“:”分开

  

  - 压缩某一日之后的文件

    【案例】zip ‐t 102002 file.zip:将当前目录下在2002年10月20日之后文件压缩

    

  - 不压缩链接文件的原文件

    【案例】zip ‐y file.zip *

  - 压缩率问题,-1~-9,其中-9的压缩率最高

    【案例】zip -9 file.zip *

  - 将不需要压缩的文件排除在外

    【案例】zip file.zip * -x file2.txt:在压缩时,将当前目录内的file2.txt文件排除在外

  - 以unzip命令进行.zip文件的解压缩

  - 直接解压缩文件

    【案例】unzip file.zip

  

  - 排除不需要解压缩的文件

    【案例】unzip file.zip ‐x file2:除了file2文件外,其他的文件都解压缩

  

  - 查看压缩包的内容

  【案例】unzip ‐Z file.zip:查看file.zip压缩包的内容,也可以使用“-l”“-v”来查看压缩包的内容

    - 以gzip和gunzip处理.gz文件

  - chattr和lsattr命令详解

  - chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,如果Linux内核版本低于2.2,那么许多功能不能实现。同样-D检查压缩文件中的错误的功能,需要2.5.19    以上内核才能支持。另外,通过chattr命令修改属性能够提高系统的安全 性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var
    目录。

  -  lsattr比较简单,只是显示文件的属性
    【案例】 [root]# lsattr

        ----ia---j--- ./lsattr_test

        这两个命令是用来改变文件、目录属性的,和chmod,ls这些命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的。

  - chattr命令的用法:chattr [+ - =] [ASacdistu]

    最关键的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的属性。

  

  - + :在原有参数设定基础上,追加参数。

  - - :在原有参数设定基础上,移除参数。

  - = :更新为指定参数设定。

  - A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。

  - S:硬盘I/O同步选项,功能类似sync。

  - a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。

  - c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。

  - d:即no dump,设定文件不能成为dump程序的备份目标。

  - i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。

  - j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数        为 data=journal,则该参数自动失效。

  - s:保密性地删除文件或目录,即硬盘空间被全部收回。

  - u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion.

  各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能    力(标识)的进程能够施加该选项。

  【案例】1、用chattr命令防止系统中某个关键文件被修改

  # chattr +i /etc/fstab

  然后试一下rm mv rename等命令操作于该文件,都是得到Operation not permitted 的结果【案例】2、让某个文件只能往里面追加内容,不能删除,一些日志文件适用于这种操作    # chattr +a /data1/user_act.log