linux命令之文件操作(四)

文件搜索

which

这个一般用来搜索命令搜索文件不用这个,通常会把命令的完整路径输出到标准输出,即显示终端。

这个命令是通过环境变量PATH来找的,也就是说,如果环境变量没配置好,那么很可能找不到这个命令的路径。内建命令搜索不了!

常用参数:a

即which -a command

通常,不带这个参数,程序一旦找到第一个就会停止,如果用了参数a,

那么所有的PATH都会被搜索

whereis

查找二进制文件源代码文件、命令的帮助文件,默认搜索三者

这个命令运行速度很快,因为是通过搜索内置数据库实现的

whereis [-bms] 文件

选项与参数:

-b :只找二进制的文件

-m :只找命令的帮助文件

-s :只找源代码文件

-u :搜寻不在上述三个项目当中的其他特殊文件

locate

通过名字来查找文件,更find有点像,因为这个locate有数据的加持,搜索速度会很快。所以,当你搜索不到的时候,可以手动升级下数据库(updatedb),然后再搜索。

  • updatedb:根据 /etc/updatedb.conf 的配置去搜寻系统硬盘内的档名,并升级 /var/lib/mlocate 内的数据库文件;

  • locate:依据 /var/lib/mlocate 内的数据库记载,找出使用者输入的关键字。

这个命令的选项很多,我比较常用-b '\name'这个选项,这个选项只搜索完全符合name的内容,否则,只要路径上出现name,这个程序都会搜索出来,比如你搜索ls

locate ls
var/lib/yum/yumdb/r/5389b7a218607a7a022c7108ede4f19b2867d5fb-redhat-lsb-core-4.0-7.el6.centos-x86_64/from_repo_timestamp
/var/lib/yum/yumdb/r/5389b7a218607a7a022c7108ede4f19b2867d5fb-redhat-lsb-core-4.0-7.el6.centos-x86_64/installed_by
/var/lib/yum/yumdb/r/5389b7a218607a7a022c7108ede4f19b2867d5fb-redhat-lsb-core-4.0-7.el6.centos-x86_64/reason
/var/lib/yum/yumdb/r/5389b7a218607a7a022c7108ede4f19b2867d5fb-redhat-lsb-core-4.0-7.el6.centos-x86_64/releasever
/var/lib/yum/yumdb/s/36c650d5bf113357fd4a8429fbacaf880f2cacf6-shadow-utils-4.1.5.1-5.el6-x86_64
/var/lib/yum/yumdb/s/e9ba0d8bd545bfaead6a86823178afbf3b4e70f5-sysvinit-tools-2.87-6.dsf.el6-x86_64
/var/lib/yum/yumdb/s/36c650d5bf113357fd4a8429fbacaf880f2cacf6-shadow-utils-4.1.5.1-5.el6-x86_64/checksum_data
/var/lib/yum/yumdb/s/36c650d5bf113357fd4a8429fbacaf880f2cacf6-shadow-utils-4.1.5.1-5.el6-x86_64/checksum_type
/var/lib/yum/yumdb/s/36c650d5bf113357fd4a8429fbacaf880f2cacf6-shadow-utils-4.1.5.1-5.el6-x86_64/from_repo
/var/lib/yum/yumdb/s/36c650d5bf113357fd4a8429fbacaf880f2cacf6-shadow-utils-4.1.5.1-5.el6-x86_64/from_repo_revision
/var/lib/yum/yumdb/s/36c650d5bf113357fd4a8429fbacaf880f2cacf6-shadow-utils-4.1.5.1-5.el6-x86_64/from_repo_timestamp
/var/lib/yum/yumdb/s/36c650d5bf113357fd4a8429fbacaf880f2cacf6-shadow-utils-4.1.5.1-5.el6-x86_64/installed_by
/var/lib/yum/yumdb/s/36c650d5bf113357fd4a8429fbacaf880f2cacf6-shadow-utils-4.1.5.1-5.el6-x86_64/reason
/var/lib/yum/yumdb/s/36c650d5bf113357fd4a8429fbacaf880f2cacf6-shadow-utils-4.1.5.1-5.el6-x86_64/releasever
/var/lib/yum/yumdb/s/e9ba0d8bd545bfaead6a86823178afbf3b4e70f5-sysvinit-tools-2.87-6.dsf.el6-x86_64/checksum_data
/var/lib/yum/yumdb/s/e9ba0d8bd545bfaead6a86823178afbf3b4e70f5-sysvinit-tools-2.87-6.dsf.el6-x86_64/checksum_type
/var/lib/yum/yumdb/s/e9ba0d8bd545bfaead6a86823178afbf3b4e70f5-sysvinit-tools-2.87-6.dsf.el6-x86_64/from_repo
/var/lib/yum/yumdb/s/e9ba0d8bd545bfaead6a86823178afbf3b4e70f5-sysvinit-tools-2.87-6.dsf.el6-x86_64/from_repo_revision
/var/lib/yum/yumdb/s/e9ba0d8bd545bfaead6a86823178afbf3b4e70f5-sysvinit-tools-2.87-6.dsf.el6-x86_64/from_repo_timestamp
/var/lib/yum/yumdb/s/e9ba0d8bd545bfaead6a86823178afbf3b4e70f5-sysvinit-tools-2.87-6.dsf.el6-x86_64/installed_by
/var/lib/yum/yumdb/s/e9ba0d8bd545bfaead6a86823178afbf3b4e70f5-sysvinit-tools-2.87-6.dsf.el6-x86_64/reason
/var/lib/yum/yumdb/s/e9ba0d8bd545bfaead6a86823178afbf3b4e70f5-sysvinit-tools-2.87-6.dsf.el6-x86_64/releasever
/var/lib/yum/yumdb/y/3caf24d19e8a3a44b6eb103c2a90547a68cb6710-yum-utils-1.1.30-42.el6_10-noarch
/var/lib/yum/yumdb/y/3caf24d19e8a3a44b6eb103c2a90547a68cb6710-yum-utils-1.1.30-42.el6_10-noarch/checksum_data
/var/lib/yum/yumdb/y/3caf24d19e8a3a44b6eb103c2a90547a68cb6710-yum-utils-1.1.30-42.el6_10-noarch/checksum_type
/var/lib/yum/yumdb/y/3caf24d19e8a3a44b6eb103c2a90547a68cb6710-yum-utils-1.1.30-42.el6_10-noarch/command_line
/var/lib/yum/yumdb/y/3caf24d19e8a3a44b6eb103c2a90547a68cb6710-yum-utils-1.1.30-42.el6_10-noarch/from_repo
/var/lib/yum/yumdb/y/3caf24d19e8a3a44b6eb103c2a90547a68cb6710-yum-utils-1.1.30-42.el6_10-noarch/from_repo_revision
/var/lib/yum/yumdb/y/3caf24d19e8a3a44b6eb103c2a90547a68cb6710-yum-utils-1.1.30-42.el6_10-noarch/from_repo_timestamp
/var/lib/yum/yumdb/y/3caf24d19e8a3a44b6eb103c2a90547a68cb6710-yum-utils-1.1.30-42.el6_10-noarch/installed_by
/var/lib/yum/yumdb/y/3caf24d19e8a3a44b6eb103c2a90547a68cb6710-yum-utils-1.1.30-42.el6_10-noarch/reason
/var/lib/yum/yumdb/y/3caf24d19e8a3a44b6eb103c2a90547a68cb6710-yum-utils-1.1.30-42.el6_10-noarch/releasever

这不是你想要的,所有要用locate -b '\ls'

/bin/ls

/usr/local/qcloud/YunJing/bin/ls

这就正常了

find

这命令超级强大,其他命令不行的情况下,可以直接用这个命令,这个命令是直接搜索硬盘,因此可以找到硬盘的所有东西,但也因为搜索硬盘,会比较慢。

这里我用的比较多的就是通过名字来找文件:

find path -name filename

比如要找ls,你可以这么写:

find / -name ls

我的结果是:

[root@VM-0-14-centos yum.repos.d]# find / -name ls

/usr/local/qcloud/YunJing/bin/ls

/bin/ls

如果对于找到的结果要执行某个命令,那么可以这么做:

find path expressions -exec command

比如要在/etc中找到权限为0700的文件,并列出详细信息,则可以这么写:

find /etc/ -perm 0700 -exec ls -ld {} \;

这里的{}是用来装find找到的结果,并作为ls的参数,\用来转义;

输出结果:

[root@VM-0-14-centos etc]# find /etc/ -perm 0700 -exec ls -ld {} \;

-rwx------ 1 root root 927 Mar 22 2017 /etc/cron.daily/makewhatis.cron

-rwx------. 1 root root 180 Jul 10 2003 /etc/cron.daily/logrotate

-rwx------ 1 root root 189 Jan 26 2015 /etc/cron.daily/mlocate.cron

drwx------. 2 root root 4096 Nov 15 2017 /etc/lvm/cache

drwx------. 2 root root 4096 Nov 15 2017 /etc/lvm/backup

drwx------. 2 root root 4096 Nov 15 2017 /etc/lvm/archive

drwx------. 2 root root 4096 Jun 19 2018 /etc/pki/rsyslog

drwx------. 2 root root 4096 Aug 15 2019 /etc/pki/CA/private

drwx------. 3 root root 4096 Jan 11 2022 /etc/selinux/targeted/modules/active

drwx------. 2 root root 12288 Jan 11 2022 /etc/selinux/targeted/modules/active/modules

刚才说了,这么命令很强大,除了通过名字来搜索,还可以通过权限、所有者、时间、大小、类型、uid、guid来搜索,还可以通过比较,比如大于某个时间,大于某个尺寸等等来搜索,详细的可以查看find的man手册。

打包、压缩

tar

  • 压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称

  • 查 询:tar -jtv -f filename.tar.bz2

  • 解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

这里的j代表用bzip2技术进行压缩或者解压

c代表打包

x达标解包

f代表后面要跟的文件名,即指定的结果的文件名

v表示要输出处理过程

另外,j有可能被z代替,表示用gzip技术来压缩

最后,可以通过-C来指定解压的目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值