我有大量的文件。当我使用 find 命令时,我确信此集合中只有一个文件。为了使所有 find 命令更快,我希望运行 find 命令直到它找到一个文件。我不需要等待更多文件。也许是一些带有 break 的 bash 脚本......
知道怎样做吗?
答案1
使用 GNUfind
您可以使用该-quit
选项。
例如,以下命令将打印找到的第一个 txt 文件然后退出。
find . -name "*.txt" -print -quit
答案2
尝试阅读手册(man find
):
-辞职
立即退出。不会有任何子进程继续运行,但不会处理命令行上指定的其他路径。例如,find /tmp/foo /tmp/bar -print -quit 将仅打印 /tmp/foo。在 find 退出之前,将调用使用 -execdir ... {} + 构建的任何命令行。退出状态可能是零,也可能不是零,具体取决于是否已经发生错误。
答案3
您可以使用 sed 进行查找:
[za@pc-02 ~]$ find ./ -iname '[0-9]' | sed 1q
./1
[za@pc-02 ~]$ find ./ -iname '[0-9]'
./1
./3
./2
[za@apc-02 ~]$ ls
1 2 3 vim
sed 1q- 意味着你只需要一行,通过 find 生成,如果你需要多行,请写下这个10q
(10 行)
[0-9]此正则表达式表示仅匹配范围内的一位数字0-9