系统管理-Linux系统文件查找

简介: 系统管理-Linux系统文件查找
  • 文件查找概述
  • find名称查找
  • find大小查找
  • find时间查找
  • find用户查找
  • find类型查找
  • find权限查找
  • find处理动作

文件查找概述

Linux系统中的find命令在查找文件时非常有用而且方便

它可以根据不同的条件来进行查找文件:例如权限、拥有者、修改日期/时间、文件大小等等

同时find命令是Linux下必须掌握的

find 命令的基本语法如下

image.png

find名称查找

创建文件
[root@liza ~]# touch /etc/sysconfig/network-scripts/{ifcfg-eth1,IFCFG-ETH1}
查找/etc目录下包含ifcfg-eth0名称的文件
[root@liza ~]# find /etc -name "ifcfg-eth1"
/etc/sysconfig/network-scripts/ifcfg-eth1
-i 忽略大小写
[root@liza ~]# find /etc -iname "ifcfg-eth1"
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/sysconfig/network-scripts/IFCFG-ETH1
查找/etc目录下包含ifcfg-eth名称所有文件
[root@liza ~]# find /etc/ -name "ifcfg-eth*"
/etc/sysconfig/network-scripts/ifcfg-eth1
[root@liza ~]# find /etc -iname "ifcfg-eth*"
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/sysconfig/network-scripts/IFCFG-ETH1

find大小查找

查找大于5M
[root@liza ~]# find /etc -size +5M
/etc/udev/hwdb.bin
查找等于5M
[root@liza ~]# find /etc -size 5M
查找小于5M
[root@liza ~]# find /etc -size 5M

find时间查找

创建测试文件
[root@liza ~]# for i in {01..28};do date -s  201802$i && touch file-$i;done
查找7天以前的文件(不会打印当天的文件)
[root@liza ~]# find ./ -iname "file-*" -mtime +7
查找最近7天的文件,不建议使用(会打印当天的文件)
[root@liza ~]# find ./ -iname "file-*" -mtime -7
查找第7天文件(不会打印当天的文件)
[root@liza ~]# find ./ -iname "file-*" -mtime 7
本地文件保留最近7天的备份文件, 备份服务器保留3个月的备份文件
[root@liza ~]# find /backup/ -iname "*.bak" -mtime +7 -delete
[root@liza ~]# find /backup/ -iname "*.bak" -mtime +90 -delete

find用户查找

查找属主是jack
[root@liza ~]# find /home -user jack
查找属组是admin
[root@liza ~]# find /home -group admin
查找属主是jack, 属组是admin
[root@liza ~]# find /home -user jack -group admin
查找属主是jack, 并且属组是admin
[root@liza ~]# find /home -user jack -a -group admin
查找属主是jack, 或者属组是admin
[root@liza ~]# find /home -user jack -o -group admin
查找没有属主
[root@liza ~]# find /home -nouser
查找没有属组
[root@liza ~]# find /home -nogroup
查找没有属主或属组
[root@liza ~]# find /home -nouser -o -nogroup

find类型查找

f 文件
[root@liza ~]# find /dev -type f
d 目录
[root@liza ~]# find /dev -type d
l 链接
[root@liza ~]# find /dev -type l
b 块设备
[root@liza ~]# find /dev -type b
c 字符设备
[root@liza ~]# find /dev -type c
s 套接字
[root@liza ~]# find /dev -type s
p 管道文件
[root@liza ~]# find /dev -type p

find权限查找

精切匹配644权限
[root@liza ~]# find . -perm 644 -ls
拥有者至少有011(-wx),组010(-w-),其他人100(r–)
[root@liza ~]# find /home -perm -324 
查找全局可写(没位权限必须高于2 -w-)
[root@liza ~]# find . -perm -222 -ls
拥有者至少有r权限, 或者拥有组至少有r权限, 或者匿名至少有w权限
[root@liza ~]# find /home -perm /442 
包含set uid
[root@liza ~]# find  /usr/sbin -perm -4000 -ls
包含set gid
[root@liza ~]# find  /usr/sbin -perm -2000 -ls
包含sticky
[root@liza ~]# find  /usr/sbin -perm -1000 -ls

find处理动作

当查找到一个文件后, 需要对文件进行如何处理, 默认动作 -print

-print //打印

-ls //以长格式打印显示

-delete //删除查找到的文件(仅能删除空目录)

exec //后面跟自定义的 shell 命令(标准写法 -exec ;)

-ok //后面跟自定义的 shell 命令(会提示是否操作)

打印查询到的文件
[root@liza ~]# find /etc -name "ifcfg*"
/etc/sysconfig/network-scripts/ifcfg-lo
/etc/sysconfig/network-scripts/ifcfg-ens33
/etc/sysconfig/network-scripts/ifcfg-eth1
[root@liza ~]# find /etc -name "ifcfg*" -print
/etc/sysconfig/network-scripts/ifcfg-lo
/etc/sysconfig/network-scripts/ifcfg-ens33
/etc/sysconfig/network-scripts/ifcfg-eth1
[root@liza ~]# find /etc -name "ifcfg*" -ls
50756098    4 -rw-r--r--   1 root     root          254 May  3  2017 /etc/sysconfig/network-scripts/ifcfg-lo
51336699    4 -rw-r--r--   1 root     root          310 Jan  3 22:59 /etc/sysconfig/network-scripts/ifcfg-ens33
51343497    0 -rw-r--r--   1 root     root            0 Jan 15 11:38 /etc/sysconfig/network-scripts/ifcfg-eth1
拷贝文件
[root@liza ~]# find /etc -name "ifcfg*" -exec cp -rvf {} /tmp \;
‘/etc/sysconfig/network-scripts/ifcfg-lo’ -> ‘/tmp/ifcfg-lo’
‘/etc/sysconfig/network-scripts/ifcfg-ens33’ -> ‘/tmp/ifcfg-ens33’
‘/etc/sysconfig/network-scripts/ifcfg-eth1’ -> ‘/tmp/ifcfg-eth1’
-ok会不断提示
[root@liza ~]# find /etc -name "ifcfg*" -ok cp -rvf {} /tmp \;
< cp ... /etc/sysconfig/network-scripts/ifcfg-lo > ? y
‘/etc/sysconfig/network-scripts/ifcfg-lo’ -> ‘/tmp/ifcfg-lo’
< cp ... /etc/sysconfig/network-scripts/ifcfg-ens33 > ? y
‘/etc/sysconfig/network-scripts/ifcfg-ens33’ -> ‘/tmp/ifcfg-ens33’
< cp ... /etc/sysconfig/network-scripts/ifcfg-eth1 > ? y
‘/etc/sysconfig/network-scripts/ifcfg-eth1’ -> ‘/tmp/ifcfg-eth1’
删除文件
[root@liza ~]# find /etc -name "ifcfg*" -exec rm -f {} \;
[root@liza ~]# find /etc -name "ifcfg*" -delete
find结合xargs

xargs将查找到结果一个一个的处理

[root@liza ~]# touch file.txt
[root@liza ~]# find . -name "file.txt" |xargs rm -f
[root@liza ~]# find . -name "file.txt" |xargs -I {} cp -rvf {} /var/tmp
目录
打赏
0
0
0
0
12
分享
相关文章
Linux系统资源管理:多角度查看内存使用情况。
要知道,透过内存管理的窗口,我们可以洞察到Linux系统运行的真实身姿,如同解剖学家透过微观镜,洞察生命的奥秘。记住,不要惧怕那些高深的命令和参数,他们只是你掌握系统"魔法棒"的钥匙,熟练掌握后,你就可以骄傲地说:Linux,我来了!
73 27
|
8天前
|
Linux系统管理:服务器时间与网络时间同步技巧。
以上就是在Linux服务器上设置时间同步的方式。然而,要正确运用这些知识,需要理解其背后的工作原理:服务器根据网络中的其他机器的时间进行校对,逐步地精确自己的系统时间,就像一只犹豫不决的啮齿动物,通过观察其他啮齿动物的行为,逐渐确定自己的行为逻辑,既简单,又有趣。最后希望这个过程既能给你带来乐趣,也能提高你作为系统管理员的专业素养。
47 20
|
9天前
|
Linux基础:文件和目录类命令分析。
总的来说,这些基础命令,像是Linux中藏匿的小矮人,每一次我们使用他们,他们就把我们的指令准确的传递给Linux,让我们的指令变为现实。所以,现在就开始你的Linux之旅,挥动你的命令之剑,探索这个充满神秘而又奇妙的世界吧!
55 19
|
24天前
|
Linux 常用文件查看命令
`cat` 命令用于连接文件并打印到标准输出,适用于快速查看和合并文本文件内容。常用示例包括:`cat file1.txt` 查看单个文件,`cat file1.txt file2.txt` 合并多个文件,`cat &gt; filename` 创建新文件,`cat &gt;&gt; filename` 追加内容。`more` 和 `less` 命令用于分页查看文件,`tail` 命令则用于查看文件末尾内容,支持实时追踪日志更新,如 `tail -f file.log`。
47 5
Linux 常用文件查看命令
|
3天前
|
如何创建Linux交换文件?Linux交换文件最新创建方法
Swap是Linux中的虚拟内存空间,用于在物理内存不足时将非活动进程移至磁盘,从而优化活动进程的性能。通过创建交换文件(如1GB),可灵活调整交换空间而无需重新分区。步骤包括:使用`fallocate`或`dd`创建文件、设置权限 (`chmod 600`)、格式化 (`mkswap`)、启用交换 (`swapon`)、修改`/etc/fstab`以持久化配置,以及调整`vm.swappiness`值(默认60,建议从10开始)来平衡内存与交换的使用。最后通过`swapon -s`检查状态并重启生效。此方法适用于VPS和专用服务器,需以root用户操作。
17 2
|
13天前
|
Linux系统ext4磁盘扩容实践指南
这个过程就像是给你的房子建一个新的储物间。你需要先找到空地(创建新的分区),然后建造储物间(格式化为ext4文件系统),最后将储物间添加到你的房子中(将新的分区添加到文件系统中)。完成这些步骤后,你就有了一个更大的储物空间。
68 10
|
25天前
|
Linux系统中如何查看CPU信息
本文介绍了查看CPU核心信息的方法,包括使用`lscpu`命令和读取`/proc/cpuinfo`文件。`lscpu`能快速提供逻辑CPU数量、物理核心数、插槽数等基本信息;而`/proc/cpuinfo`则包含更详细的配置数据,如核心ID和处理器编号。此外,还介绍了如何通过`lscpu`和`dmidecode`命令获取CPU型号、制造商及序列号,并解释了CPU频率与缓存大小的相关信息。最后,详细解析了`lscpu`命令输出的各项参数含义,帮助用户更好地理解CPU的具体配置。
78 8
深度体验阿里云系统控制台:SysOM 让 Linux 服务器监控变得如此简单
作为一名经历过无数个凌晨三点被服务器报警电话惊醒的运维工程师,我对监控工具有着近乎苛刻的要求。记得去年那次大型活动,我们的主站流量暴增,服务器内存莫名其妙地飙升到90%以上,却找不到原因。如果当时有一款像阿里云 SysOM 这样直观的监控工具,也许我就不用熬通宵排查问题了。今天,我想分享一下我使用 SysOM 的亲身体验,特别是它那令人印象深刻的内存诊断功能。
linux怎么把文件传到docker里面
在现代应用开发中,Docker作为流行的虚拟化工具,广泛应用于微服务架构。文件传输到Docker容器是常见需求。常用方法包括:1) `docker cp`命令直接复制文件;2) 使用`-v`选项挂载宿主机目录,实现数据持久化和实时同步;3) 通过SCP/FTP协议传输文件;4) 在Dockerfile中构建镜像时添加文件。选择合适的方法并确保网络安全是关键。
137 1
|
15天前
|
微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
46 0