在 Bash 中运行 find -exec 命令
本文将解释如何使用 find
命令的 -exec
参数使用 find
命令定位文件中的任何文本。
在 Bash 中使用 find
命令搜索文件
find
命令是在 bash 中搜索和选择文件的有用工具。我们使用带有一些表达式和动作的 find
命令。
例子:
find ./folder -name *.txt
我们使用带有搜索位置的 find
命令,例如 ./folder
用于 folder
目录及其子目录。而 -name *.txt
表达式是查找该位置中的每个 .txt
文件。
在 Bash 中使用 -exec
选项和 find
命令搜索文件
我们可以使用 -exec
操作对 find
命令使用 find
命令找到的文件运行命令。
例子:
find ./folder -name *.txt -exec file {} +
输出:
./folder/hello.txt: ASCII text, with no line terminators
-exec
操作运行 file
命令,显示 find
命令返回的文件类型。
在 Bash 中使用 find -exec
命令搜索特定文本
我们可以使用带有 -exec
选项的 find
命令来查找包含我们要搜索的文本的文件。
主要概念是使用 find
命令获取工作目录中的每个文件,并执行 grep
命令查找每个文件中的文本。
例子:
# !/bin/bash
find . -exec grep linux {} \;
以下命令将返回找到指定 text
的行。
输出:
find . -exec grep linux {} \;
find . -exec grep linux {} +
title = "Unzip .gz file in linux"
description = "How to unzip a .gz file in linux"
防止 shell 解释 ;
分隔符,我们在它之前使用\
。使用这种策略,我们只得到检测到文本的行。
我们可以通过替换分隔符 ;
来获取行以及找到它的文件名带有+
。
# !/bin/bash
find . -exec grep linux {} +
输出:
./bash.sh:find . -exec grep linux {} \;
./bash.sh:find . -exec grep linux {} +
./unzip_gz_linux.txt:title = "Unzip .gz file in linux"
./unzip_gz_linux.txt:description = "How to unzip a .gz file in linux"
find
处理表达式结果的方式由分隔符决定。如果我们使用分号 ;
,-exec
命令将独立重复每个结果。
如果我们使用+
符号,所有表达式的结果将被连接起来并提供给 -exec
命令,只运行一次。出于性能原因,我们更喜欢使用 +
分隔符。
相关文章
Linux 中的 grep 命令
发布时间:2024/02/04 浏览次数:88 分类:操作系统
-
本教程演示使用 grep 命令匹配不区分大小写的模式、计算匹配的数量、显示匹配的文件名、匹配精确模式、仅显示匹配的模式、显示行号、反转模式匹配、匹配起始字符串并匹配一行的
Bash 脚本中的 eval 命令
发布时间:2023/06/11 浏览次数:337 分类:操作系统
-
本文是关于在 Bash 脚本中使用字符串作为命令的。 为此,使用了 eval 命令。Bash 脚本中的 Eval 命令 在某些 Bash 脚本中,您必须使用变量或输入值(例如)创建一个字符串,并在最后将其作为命
退出 Bash 脚本
发布时间:2023/06/11 浏览次数:255 分类:操作系统
-
本文简要介绍 Bash 脚本,并讨论在出现错误时退出 Bash 脚本。 它进一步讨论了 Bash 脚本的局限性和好处。什么是 Bash 脚本 计算机脚本/程序告诉计算机做什么和说什么。
Bash 中的 timeout 命令
发布时间:2023/06/11 浏览次数:134 分类:操作系统
-
本文是使用 Bash 中 GNU 的 coreutils 包的 timeout 命令为特定程序设置超时的简单指南。Bash 中的 timeout 命令
在 Bash 中启动一个新的终端会话
发布时间:2023/06/11 浏览次数:141 分类:操作系统
-
在各种情况下,当使用 Bash 或其他 shell 时,可能需要在新终端实例或同一终端中的另一个选项卡中运行脚本或程序。