Linux系统的文件查找

文件查找

inux上的所有资源都以文件的形式存在,如果是手工查找的话,势必会浪费太多的时间,所以文件查找有三种主要方式。

which :命令查找
find: 文件查找,针对文件名
locate:文件查找,依赖数据库

命令文件查找

which

  • 查找ls 命令的位置
    which ls
    //从PATH环境变量
    或者
    where is vim

任意文件查找

find

  • 语法:find [path…] [options] [expression] [action]
    命令 路径 选项 表达式 动作
    • 按文件名查找
[root@localhost ~]# find /etc   -name  "hosts"
/etc/hosts
/etc/avahi/hosts
[root@localhost ~]# find /etc   -iname  "hosts"
/etc/hosts
/etc/avahi/hosts
[root@localhost ~]# find /etc   -iname  "hos*"
/etc/host.conf
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/selinux/targeted/active/modules/100/hostname
/etc/avahi/hosts
/etc/hostname
[root@localhost ~]# 
文件查找成功     - " i "  代表着忽略大小写
  • 按文件大小查找
[root@localhost ~]# find /tmp -size  +5M
/tmp/255.txt        文件>5M
[root@localhost ~]# find /tmp -size  5M
/tmp/355.txt        文件=5M
[root@localhost ~]# find /tmp -size  -5M
/tmp/155.txt        文件<5M

size: 大小

  • 按照指定查找的目录深度
[root@localhost ~]# find / -maxdepth  3 -a -name "ifcfg-en*"
[root@localhost ~]#     查找文件目录不在三层里
[root@localhost ~]# find / -maxdepth  4 -a -name "ifcfg-en*"
/etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost ~]#     查找文件目录在四层里

-maxdepth: 指定遍历搜索的最大深度
-mindepth: 指定开始遍历搜索的最小深度

  • 按文件属主、属组查找

[root@localhost ~]# useradd  jack
[root@localhost ~]# groupadd  hr
[root@localhost ~]# find /home  -user jack
/home/jack    属主是jack的文件
/home/jack/.mozilla
/home/jack/.mozilla/extensions
/home/jack/.mozilla/plugins
/home/jack/.bash_logout
/home/jack/.bash_profile
/home/jack/.bashrc

属组与属主查询一样 最后查出 属组是hr的文件

          -user USERNAME  :查找属主为指定用户(UID)的文件

          -group GRPNAME  : 查找属组为指定组(GID)的文件

          -uid UserID     :查找属主为指定的UID号的文件

          -gid GroupID    :查找属组为指定的GID号的文件

          -nouser         :查找没有属主的文件

          -nogroup        :查找没有属组的文件
  • 按文件类型查找
[root@localhost ~]# find /tmp -type  f
/tmp/355.txt
/tmp/155.txt
/tmp/255.txt
/tmp/.X0-lock
/tmp/yum_save_tx.2020-08-04.11-17.6yfN_e.yumtx
[root@localhost ~]# find /dev -type  b
/dev/dm-1
/dev/dm-0
/dev/sr0
/dev/sda2
/dev/sda1
/dev/sda
[root@localhost ~]# 
              f: 普通文件

              d: 目录文件

              l: 符号链接文件

              s:套接字文件

              b: 块设备文件

              c: 字符设备文件

              p: 管道文件
  • 按文件权限查找
    语法:find . -perm 644 -ls
[root@localhost ~]# find . -perm 644 -ls
 -ls     是find的动作之一,精确权限

" . " :代表当前文件夹
“-perm” :代表选项
" -ls " :动作 (默认权限 print :打印)

  • 找到后处理的动作 ACTIONS
    找到后默认显示文件
[root@localhost ~]# find . -perm  715  -print    文件名
[root@localhost ~]# find . -perm  715  -ls      文件属性

找到后删除

[root@localhost ~]# find /etc -name "775*" -delete  删除

找到后复制

[root@localhost ~]# find     /etc     -name       "ifcfg*"      -ok     cp     -rvf   {}    /tmp    \;

" -ok " :后面转接命令

" v ":显示出来

任意文件查找

locate

[root@localhost]#touch  /etc/systemd/233.txt 创建一个新文件
[root@localhost]# updatedb       更新数据库
[root@localhost]# locate 233.txt    查找233.txt

文件打包及压缩

tar命令是Unix/Linux系统中备份文件的可靠方法,
几乎可以工作于任何环境中,它的使用权限是所有用户。
建议针对目录

打包、压缩

  • 语法:tar 选项 压缩包名称 源文件
# tar   -cf         etc.tar          /etc
# tar   -czf       etc-gzip.tar.gz         /etc/
# tar   -cjf       etc-bzip.tar.bz        /etc/
# tar   -cJf         etc-xzip.tar.xz        /etc/

// z是gzip
// j是bzip
// J是xzip
观察压缩文件包

[root@localhost]# ll -h etc*
-rw-r--r--. 1 root root  11M 10月 14 10:07 etc-gzip.tar.gz
-rw-r--r--. 1 root root 8.9M 10月 14 10:08 etc-bzip.tar.bz
-rw-r--r--. 1 root root 7.6M 10月 14 10:08 etc-xzip.tar.xz

压缩速度和压缩体积成反比
比例越高 时间越长 体积越小
比例越低 时间越短 体积越大

解压、解包

语法:tar -xf 文件名称

[root@loaclhost]# tar -tf       etc.tar        //  t查看f文件名

解压

[root@localhost]# tar xf etc3.tar.xz
[root@localhost]# tar -xvf etc2.tar.bz2 -C /tmp     //-C重定向到//tmp目录
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Linux 系统中,有几种常用的方法来查找文件: 1. `find` 命令:该命令可以在指定目录及其子目录中查找文件。例如:`find /path/to/dir -name filename` 将在 `/path/to/dir` 目录中查找名为 `filename` 的文件。 2. `locate` 命令:该命令使用文件名数据库,可以快速查找文件。例如:`locate filename` 将查找所有名为 `filename` 的文件。 3. `which` 命令:该命令可以查找系统中特定命令的完整路径。例如:`which filename` 将查找名为 `filename` 的命令的完整路径。 4. `whereis` 命令:该命令可以查找系统中命令的位置,以及关于命令的相关文件。例如:`whereis filename` 将查找名为 `filename` 的命令的位置。 ### 回答2: 在Linux系统中,我们可以使用一些命令来查找文件。常用的命令有find和locate。 以find命令为例,其基本语法为: find [路径] [选项] [表达式] 其中,路径表示要查找的目录,默认为当前目录。选项可以指定一些条件或配置,表达式则是用来匹配文件的模式。 例如,要查找当前目录下所有以.txt结尾的文件,可以使用以下命令: find . -name "*.txt" 其中的.表示当前目录,-name表示按文件名匹配,*.txt表示以.txt结尾。 通过find命令,我们还可以根据文件类型、大小、权限等进行更详细的查找。例如,以下命令可以查找当前目录下大于1MB并且是普通文件文件: find . -type f -size +1M 除了find命令,还有一个常用的命令是locate。locate命令的查找速度更快,但需要先更新文件索引数据库。可以使用以下命令更新索引: sudo updatedb 然后,就可以使用locate命令来查找文件了。例如,以下命令可以查找以.txt结尾的文件: locate "*.txt" 总结而言,Linux系统提供了灵活而强大的文件查找工具,可以根据不同的需求使用find或locate命令进行文件查找。通过灵活运用命令的选项和表达式,我们可以更加高效地找到所需的文件。 ### 回答3: 在Linux系统中,我们可以使用一些命令来查找文件。下面介绍几个常用的命令: 1. find命令:find命令用于在指定目录及其子目录中搜索文件,可以根据文件名、文件类型、文件大小等条件进行搜索。例如,要在当前目录下查找名为"file.txt"的文件,可以执行命令:find . -name "file.txt"。 2. locate命令:locate命令用于快速定位文件,它会在数据库中查找文件,因此速度比find命令更快。但是需要注意的是,由于数据库不是实时更新的,所以如果文件在最近才被创建,可能无法通过locate找到。要使用locate命令,可以执行命令:locate "file.txt"。 3. grep命令:grep命令可以在文件中搜索指定的字符串,可以用来找到包含某个关键字的文件。例如,要在当前目录下查找包含"keyword"的文件,可以执行命令:grep -rnw . -e "keyword"。 4. which命令:which命令用于查找指定命令的路径。例如,要查找"ls"命令的路径,可以执行命令:which ls。 使用这些命令可以方便地在Linux系统查找文件。通过加上合适的参数及选项,可以更加准确地定位需要查找文件。在实际使用中,根据具体的需求选择合适的命令来进行查找

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值