Linux中查找工具的友好替代方案

find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

语法

find(选项)(参数)

选项

  • -amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
  • -anewer<参考文件或目录>:查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录;
  • -atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
  • -cmin<分钟>:查找在指定时间之时被更改过的文件或目录;
  • -cnewer<参考文件或目录>查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
  • -ctime<24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;
  • -daystart:从本日开始计算时间;
  • -depth:从指定目录下最深层的子目录开始查找;
  • -expty:寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录;
  • -exec<执行指令>:假设find指令的回传值为True,就执行该指令;
  • -false:将find指令的回传值皆设为False;
  • -fls<列表文件>:此参数的效果和指定“-ls”参数类似,但会把结果保存为指定的列表文件;
  • -follow:排除符号连接;
  • -fprint<列表文件>:此参数的效果和指定“-print”参数类似,但会把结果保存成指定的列表文件;
  • -fprint0<列表文件>:此参数的效果和指定“-print0”参数类似,但会把结果保存成指定的列表文件;
  • -fprintf<列表文件><输出格式>:此参数的效果和指定“-printf”参数类似,但会把结果保存成指定的列表文件;
  • -fstype<文件系统类型>:只寻找该文件系统类型下的文件或目录;
  • -gid<群组识别码>:查找符合指定之群组识别码的文件或目录;
  • -group<群组名称>:查找符合指定之群组名称的文件或目录;
  • -help或——help:在线帮助;
  • -ilname<范本样式>:此参数的效果和指定“-lname”参数类似,但忽略字符大小写的差别;
  • -iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;
  • -inum<inode编号>:查找符合指定的inode编号的文件或目录;
  • -ipath<范本样式>:此参数的效果和指定“-path”参数类似,但忽略字符大小写的差别;
  • -iregex<范本样式>:此参数的效果和指定“-regexe”参数类似,但忽略字符大小写的差别;
  • -links<连接数目>:查找符合指定的硬连接数目的文件或目录;
  • -iname<范本样式>:指定字符串作为寻找符号连接的范本样式;
  • -ls:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出;
  • -maxdepth<目录层级>:设置最大目录层级;
  • -mindepth<目录层级>:设置最小目录层级;
  • -mmin<分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
  • -mount:此参数的效果和指定“-xdev”相同;
  • -mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
  • -name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
  • -newer<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
  • -nogroup:找出不属于本地主机群组识别码的文件或目录;
  • -noleaf:不去考虑目录至少需拥有两个硬连接存在;
  • -nouser:找出不属于本地主机用户识别码的文件或目录;
  • -ok<执行指令>:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若回答“y”或“Y”,则放弃执行命令;
  • -path<范本样式>:指定字符串作为寻找目录的范本样式;
  • -perm<权限数值>:查找符合指定的权限数值的文件或目录;
  • -print:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;
  • -print0:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行;
  • -printf<输出格式>:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定;
  • -prune:不寻找字符串作为寻找文件或目录的范本样式;
  • -regex<范本样式>:指定字符串作为寻找文件或目录的范本样式;
  • -size<文件大小>:查找符合指定的文件大小的文件;
  • -true:将find指令的回传值皆设为True;
  • -typ<文件类型>:只寻找符合指定的文件类型的文件;
  • -uid<用户识别码>:查找符合指定的用户识别码的文件或目录;
  • -used<日数>:查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算;
  • -user<拥有者名称>:查找符和指定的拥有者名称的文件或目录;
  • -version或——version:显示版本信息;
  • -xdev:将范围局限在先行的文件系统中;
  • -xtype<文件类型>:此参数的效果和指定“-type”参数类似,差别在于它针对符号连接检查。

参数

起始目录:查找文件的起始目录。

FD

fd 是一个超快的,基于 Rust 的 Unix/Linux find 命令的替代品。它不提供所有 find 的强大功能。但是,它确实提供了足够的功能来覆盖你可能遇到的 80% 的情况。诸如良好的规划和方便的语法、彩色输出、智能大小写、正则表达式以及并行命令执行等特性使 fd 成为一个非常有能力的后继者。

安装

进入 fd GitHub 页面,查看安装部分。它涵盖了如何在macOS、 Debian/Ubuntu Red Hat 和 Arch Linux 上安装程序。安装完成后,你可以通过运行帮助来获得所有可用命令行选项的完整概述,通过 fd -h 获取简明帮助,或者通过 fd --help 获取更详细的帮助。

简单搜索

fd 旨在帮助你轻松找到文件系统中的文件和文件夹。你可以用 fd 带上一个参数执行最简单的搜索,该参数就是你要搜索的任何东西。例如,假设你想要找一个 Markdown 文档,其中包含单词 services 作为文件名的一部分:

$ fd services
downloads/services.md

如果仅带一个参数调用,那么 fd 递归地搜索当前目录以查找与莫的参数匹配的任何文件和/或目录。使用内置的 find 命令的等效搜索如下所示:

$ find . -name 'services'
downloads/services.md

如你所见,fd 要简单得多,并需要更少的输入。在我心中用更少的输入做更多的事情总是对的。

文件和文件夹

您可以使用 -t 参数将搜索范围限制为文件或目录,后面跟着代表你要搜索的内容的字母。例如,要查找当前目录中文件名中包含 services 的所有文件,可以使用:

$ fd -tf services
downloads/services.md

以及,找到当前目录中文件名中包含 services 的所有目录:

$ fd -td services
applications/services
library/services

如何在当前文件夹中列出所有带 .md 扩展名的文档?

$ fd .md
administration/administration.md
development/elixir/elixir_install.md
readme.md
sidebar.md
linux.md

从输出中可以看到,fd 不仅可以找到并列出当前文件夹中的文件,还可以在子文件夹中找到文件。很简单。

你甚至可以使用 -H 参数来搜索隐藏文件:

fd -H sessions .
.bash_sessions

指定目录

如果你想搜索一个特定的目录,这个目录的名字可以作为第二个参数传给 fd:

$ fd passwd /etc
/etc/default/passwd
/etc/pam.d/passwd
/etc/passwd

在这个例子中,我们告诉 fd 我们要在 etc 目录中搜索 passwd 这个单词的所有实例。

全局搜索

如果你知道文件名的一部分,但不知道文件夹怎么办?假设你下载了一本关于 Linux 网络管理的书,但你不知道它的保存位置。没有问题:

fd Administration /
/Users/pmullins/Documents/Books/Linux/Mastering Linux Network Administration.epub

fd 是 find 命令的极好的替代品,我相信你会和我一样发现它很有用。要了解该命令的更多信息,只需浏览手册页。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • Linux桌面的4种扫描工具

    当无纸化的世界还没有出现的时候,越来越多的人通过扫描文件和照片来摆脱纸张.不过,光有扫描仪是不够的.你需要软件来驱动扫描仪. 但问题是,许多扫描仪制造商没有Linux版本的软件,他们捆绑在他们的设备.在大多数情况下,这并不重要.为什么?因为Linux桌面上有很好的扫描应用程序.他们和各种各样的扫描仪一起工作,做得很好. 让我们来看看四个简单但灵活的开源Linux扫描工具.我使用了这些工具中的每一个并发现它们非常有用.你也可以 通过使用这些开源应用程序之一驱动您的扫描仪实现无纸化. Simple

  • Linux中使用top命令的技巧

    首先介绍top中一些字段的含义:  VIRT:virtual memory usage 虚拟内存 1.进程"需要的"虚拟内存大小,包括进程使用的库.代码.数据等 2.假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量 RES:resident memory usage 常驻内存 1.进程当前使用的内存大小,但不包括swap out 2.包含其他进程的共享 3.如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反 4.关于库占用内

  • 吸引发烧友的视听Linux发行版

    我最近偶然发现视听Linux项目,许多专门的面向音乐的Linux发行版之一.视听Linux: 是基于ArchLInux 提供一个为播放音乐而定制的实时linux内核. 使用轻量级流动箱窗口管理器 避免不必要的守护进程和服务 允许播放dsf并支持通常的pcm格式. 支持各种音乐播放器,包括我最喜欢的组合之一:mpd+粤语 自2017年4月以来,这个亲音频的Linux网站并没有显示出太多的活动,但它确实包含了今年的一些更新和评论.考虑到它的定位和功能集,我决定在我的旧东芝笔记本电脑上运行一下. 安装

  • 使用iptable和Firewalld工具来管理Linux防火墙连接规则

    防火墙 防火墙是一套规则.当数据包进入或离开受保护的网络空间时,将根据防火墙规则测试数据包的内容(特别是有关其来源.目标和计划使用的协议的信息),以确定是否应该允许数据包通过.下面是一个简单的例子: 防火墙可以根据协议或基于目标的规则过滤请求. 一方面,iptables是管理Linux机器上防火墙规则的工具. 另一方面,firewalld也是管理Linux机器上防火墙规则的工具. 你对此有意见吗?如果我告诉你外面还有另一个工具,叫做nftable? 好吧,我承认整件事闻起来有点怪怪的,所以让我解

  • Linux服务器安装GRUB步骤

    如何为 Linux 服务器安装 GRUB 当您无法通过 迁云工具 迁移内核版本较低,自带系统引导程序 GRand Unified Bootloader(GRUB)版本为 1.99 以下的 Linux 服务器,例如,CentOS 5 和 Debian 7.而且日志文件提示 Do Grub Failed 时,可能是因为没有安装 1.99 以上版本的系统引导程序 GRUB. 本文主要介绍如何为您的源服务器安装系统引导程序 GRUB 1.99 版本.安装 GRUB 1.99 及以上版本如 1.99 和

  • linux中pip操作时的超时解决方法

    如何解决 Linux 实例 pip 操作时的超时问题 pip 是当前最流行的 Python 安装包管理工具之一,很多阿里云用户会通过 pip 更新系统源.阿里云的 pip 源地址有以下三处: (默认)公网:mirrors.aliyun.com 专有网络 VPC 内网:mirrors.cloud.aliyuncs.com 经典网络内网:mirrors.aliyuncs.com 现象描述 Linux 实例的 pip 请求偶有超时或者失败现象.目前,受影响的公共镜像有: CentOS Debian U

  • Linux系统磁盘格式化以及手动增加swap分区

    windows:支持NTFS ,fat linux支持文件格式: cat /etc/filesystems 查看Centos 7可支持的文件格式. xfs Centos 7 默认文件系统名称为xfs mount 查看 /dev/vda1 on / type ext4 (rw,relatime,data=ordered) 磁盘格式化 mke2fs -t exet4 指定格式化为什么格式的文件系统 mke2fs -b 指定块大小 例如:mke2fs -t ext4 -b 2048 /dev/sdb1

  • Linux中10个方便的Bash别名

    有多少次您在命令行上多次输入一个长命令,并希望有一种方法将其保存到以后?这就是Bash别名派上用场的地方.它们允许您将长而神秘的命令浓缩成易于记忆和使用的命令.需要一些例子让你开始吗?没问题! 要使用您创建的Bash别名,需要将其添加到位于主文件夹中的.bash_profile文件中.请注意,此文件是隐藏的,只能从命令行访问.处理此文件的最简单方法是使用类似Vi或Nano之类的东西. 10个Bash别名 1.您需要多次解压缩.tar文件而不记得所需的确切参数? 只需将以下内容添加到.bash_p

  • Linux使用Sudo委派权限

    sudo权限委派介绍 su 切换身份:su –l username –c 'command' sudo 来自sudo包 man 5 sudoers sudo能够授权指定用户在指定主机上运行某些命令.如果未授权用户尝试使  用 sudo,会提示联系管理员 sudo可以提供日志,记录每个用户使用sudo操作 sudo为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机 sudo使用时间戳文件来完成类似"检票"的系统,默认存活期为5分钟的"入场券"

  • Linux系统交换空间介绍

    交换空间是当今计算的一个共同方面,不管操作系统如何.Linux使用交换空间来增加主机可用的虚拟内存量.它可以在常规文件系统或逻辑卷上使用一个或多个专用交换分区或交换文件. 在一台典型的计算机中有两种基本的内存类型.第一种类型,随机存取存储器(RAM),用于存储数据和程序,而这些数据和程序正在由计算机积极使用.除非程序和数据存储在RAM中,否则计算机无法使用它们.RAM是易失性内存:也就是说,如果关闭计算机,存储在RAM中的数据就会丢失. 硬盘是用于长期存储数据和程序的磁性介质.磁性介质是非易失性

  • 历史Linux镜像处理及修复方案

    历史Linux镜像创建的ECS云服务器,可能存在NTP没有配置,YUM没有配置,还可能存在最近暴漏较高的安全漏洞,请按照以下步骤进行修复,可以让您的云服务器更加安全,还可以使用阿里云提供的YUM服务进行安装软件,可以使用免费的阿里云提供的NTP进行时间同步. 1. 配置NTP 不区分发行版,先备份 /etc/ntp.conf,然后将其内容替换为如下: # ntp.conf # # ntpd config for aliyun ecs. # # 6LAN+6LAN+3WAN # shijun.ca

  • Linux推荐使用Xfce桌面环境的8个原因

    出于几个原因(包括好奇心),几周前我开始使用Xfce作为我的Linux桌面.原因之一是后台守护进程占用了我非常强大的主工作站上所有的CPU和I/O带宽.当然,有些不稳定可能是因为我删除了一些提供后台守护进程的RPM包.然而,即使在我移除RPM之前,事实是KDE是不稳定的,并且会导致性能和稳定性问题.我需要使用不同的桌面来避免这些问题. 我非常喜欢Xfce,并且比我想的更喜欢它的速度和轻盈. 作为我研究的一部分,我搜索了一下Xfce的含义.有对XForms公共环境的历史引用,但是Xfce不再使用X

随机推荐