AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 475020
Accepted
user149572
user149572
Asked: 2018-10-13 02:35:10 +0800 CST2018-10-13 02:35:10 +0800 CST 2018-10-13 02:35:10 +0800 CST

find 和 GNU find 之间的区别

  • 772

考虑一些常见的 *nix 系统(比如 Debian、CentOS、Arch 和 Kali)。

我一直用find;我不记得使用过 GNU find,但是从我看到的一个示例中,我假设 GNU find 的语法可能更简单(尽管可能允许更少的操作)。

我有两个问题:

  1. 是find通用系统中默认的“查找或操作”实用程序,还是系统会同时 find带有和GNU find?

  2. 是GNU find为了更简单find?

find utilities
  • 2 2 个回答
  • 2208 Views

2 个回答

  • Voted
  1. Best Answer
    Kusalananda
    2018-10-13T02:41:37+08:002018-10-13T02:41:37+08:00

    GNU 实用程序通常实现 POSIX 标准,然后还使用额外的功能对其进行扩展以增加便利性(另一方面,降低了跨 Unices 的可移植性)。可移植性方面是您有时会在此站点上看到答案或评论的原因,这些答案或评论非常小心地指出何时假定使用 GNU 实用程序或某些其他特定的实用程序实现。

    如果您在 Linux 系统上,您很可能正在使用 GNU 实现find,并且您可能不会安装另一个find。在非 Linux 系统上,您将拥有本机find并且还可以安装 GNU find(通常以 GNU 名称安装,gfind或者较少使用gnufind.

    与大多数 GNU 实用程序一样,GNUfind实现并扩展 了标准find规范。因此,它不是“更简单”,而是可以说更复杂,以便更方便,并且使用它完成某些复杂的任务比使用严格符合标准的find.

    经常的扩展实现find,例如,实现标准未提及的-maxdepthand谓词,特别是 GNU 还必须使用各种格式化可能性(标准没有)打印找到的路径名,以及用于执行常规的谓词路径名上各种类型的表达式匹配,以及许多其他非标准谓词,其中一些也可以在其他实现中找到(可能具有略微不同的语义,例如根据所使用的内容略有不同1 )。-mindepthfind-printffind-printffind-execdirfind

    您链接到的答案中使用的-delete谓词是非标准的,但由 GNUfind以及在find其他一些非 Linux 系统上实现。如果您使用 GNU 删除非空目录, GNUfind会-delete报错,但 OpenBSD 等相应选项find不会(也不会删除非空目录)。

    大多数 Linux 系统,无论发行版如何,都使用相同的 coreutils 和 findutils 工具集(很明显,存在诸如busybox之类的变体)。要使用一组完全不同的工具实现,您必须迁移到其中一个开源 BSD 系统或 macOS、Solaris、AIX 或其他一些商业 Unix。


    1 GNUfind在./使用时会添加路径名,-execdir而其他一些实现则不会。

    • 12
  2. ctrl-alt-delor
    2018-11-25T03:36:53+08:002018-11-25T03:36:53+08:00

    人们通常所说的 Linux 最好称为 GNU/Linux:Linux 加 GNU。因此,您使用的工具可能是 GNU。

    • Linux:一个内核,用于 GNU/Linux、Android 和许多其他系统。
    • GNU:一种操作系统,通常与Linux内核一起使用,但也可以与BSD、Hurd、Cygwin(微软Windows的DLL,它伪装成内核)、WSL(Linux的Windows子系统:没有Linux的GNU,在 Microsoft 的 Windows 上)、HPUX、Solaris、Dec Athena 等。

    因此,您可能正在使用 GNU find。

    GNU 是一个可以重写的项目,一个免费的(自由的,而不是价格的)版本,所有 Unix,包括诸如 之类的工具find,GNU 项目不担心 POSIX 合规性:它会遵守有道理,但也会有所改进。

    此外,您假设只有一个find是错误的。

    • 2

相关问题

  • 在 Taskwarrior 中过滤为未来安排的任务

  • 将变量从子shell打印到父shell [重复]

  • 检查某个文件夹是否存在于某个目录中

  • 从命令行查找和替换 CSS 文件中的颜色

  • GNU find:在-exec中获取绝对和相对路径

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve