本文概述
find命令是Linux操作系统中使用最广泛的命令之一。
如果不知道find命令, 将很难管理Linux环境。
它可以帮助你搜索Linux服务器上的文件, 文件夹, 对于文件系统内务处理非常有用。
在本文中, 我列出了一些最常见的find命令语法, 以帮助你提高工作效率。
在特定文件系统上查找文件
如果你知道文件名和文件系统, 但不确定确切的文件夹路径, 则可以使用此语法。
在下面的示例中, 我正在/ var文件系统中搜索消息文件。
[[email protected] ~]# find /var -name messages
/var/log/messages
[[email protected] ~]#
提示:如果你不知道文件系统名称, 则可以在/级上进行搜索, 但是请注意, 如果文件系统数量很多, 可能会花费一些时间。
[[email protected] ~]# find / -name messages
/var/log/messages
[[email protected] ~]#
如果你不知道确切的文件名, 也可以使用通配符模式进行搜索。
例如-要搜索error_log, 你可以尝试
[[email protected] ~]# find / -name error_*
/var/log/httpd/error_log
[[email protected] ~]#
如何以小写或大写字母搜索文件名, 换句话说, 忽略大小写?
好了, 你可以使用–iname代替–name。
例如:
[[email protected] var]# find / -iname MESSAGES
/var/log/messages
[[email protected] var]#
让我们来看另一种实时场景。如果你知道文件类型并想要搜索所有文件。
例如, 如果你正在使用WebSphere, 则可能需要搜索所有以.out结尾的文件, 然后可以尝试
# find / -name *.out
根据所有权和权限查找文件
具有777权限的文件很危险, 因为任何人都可以编辑或删除, 因此, 作为系统管理员, 你可能需要进行扫描以查找任何具有777权限的文件。
例如-显示/ opt文件系统下所有具有777权限的文件。
[[email protected] ~]# find /opt/ -type f -perm 777
/opt/testing
/opt/SystemOut.log
[[email protected] ~]#
提示:在同一行命令中打印文件所有权和时间戳如何?
[[email protected] ~]# find /opt/ -type f -perm 777 -exec ls -ltr {} + ;
-rwxrwxrwx 1 root root 0 Jul 19 03:35 /opt/testing
-rwxrwxrwx 1 root root 0 Jul 19 03:36 /opt/SystemOut.log
[[email protected] ~]#
你也可以使用单个find命令语法将权限从777更改为755。
# find /opt/ -type f -perm 777 -exec chmod 755 {} + ;
显然, 你可以将权限从755调整为其他所需的权限。
如何查找由root或其他用户拥有的文件?
如果由于先前的启动是由root完成而在启动服务时遇到问题, 这将非常有帮助。
例如, 如果tomcat由名为” tomcatapp”的用户拥有, 并且由于某种原因, 你已从root开始。
猜猜下次使用” tomcatapp”重启时会发生什么?
这不是因为文件的某些所有权已更改为root, 现在” tomcatapp”无法修改/删除这些文件。因此, 在这种情况下, 这变得非常方便。
这是在特定文件系统中搜索root拥有的任何文件的方法。
# find /opt/ -user root
注意:在/级别上执行此find语法将产生大量文件/文件夹, 因此你可能希望通过在特定文件系统中执行此操作来进行控制。
查找早于特定日期的文件
文件系统内务对于生产支持至关重要, 通常你必须处理这种语法才能查找比60天更旧的日志。
以下示例是在/ opt文件系统中查找超过60天的access.log文件。
# find /opt/ -name access.log -mtime +60
提示:如果决定在同一命令行中查找和删除, 则可以执行以下操作。这将在/ opt文件系统中找到超过60天的access.log并将其删除。
# find /opt/ -name access.log -mtime +60 -exec rm {} + ;
尽管这非常方便, 但是你可能需要在删除文件之前列出它们。这样做
# find /opt/ -name access.log -mtime +60 -exec ls -ltr {} + ;
查找大文件
有时由于由于代码问题等原因应用程序正在写入大量日志, 你可能不得不处理频繁的文件系统清理。
让我们以在/ opt文件系统中搜索大于1 GB的文件为例。
# find /opt/ -size +1G
提示:如果你知道/ opt /中超过1 GB的所有文件都可以删除, 则只需在同一行中查找和删除即可。
# find /opt/ -size +1G -exec rm {} + ;
我希望上述查找命令对你有所帮助, 并能为你提供实时帮助。
要了解有关Linux命令的更多信息, 请查看此在线课程。
评论前必须登录!
注册