Linux 如何将find生成的文件(即实际文件和内容)存储为文件而不是find的控制台输出?

Linux 如何将find生成的文件(即实际文件和内容)存储为文件而不是find的控制台输出?,linux,bash,file,scripting,find,Linux,Bash,File,Scripting,Find,目前,我这样做是为了尝试存储实际的文件及其内容,find命令在搜索名为Myfile的文件时查找: find /Users/Documents -name Myfile > outputfile This is my original file. Myfile的内容是: This is my original file. 但是,当我执行操作时,例如cat outputfile,它会获取find命令的实际输出,而不是文件本身,并显示: /Users/Documents/Myfile 当

目前,我这样做是为了尝试存储实际的文件及其内容,
find
命令在搜索名为
Myfile
的文件时查找:

find /Users/Documents -name Myfile > outputfile
This is my original file.
Myfile
的内容是:

This is my original file.
但是,当我执行操作时,例如
cat outputfile
,它会获取
find
命令的实际输出,而不是文件本身,并显示:

/Users/Documents/Myfile
当我执行
cat输出文件时,我正在等待:

find /Users/Documents -name Myfile > outputfile
This is my original file.

如何存储文件本身并对其执行操作?我的特定用例是对文件执行静态分析,我需要将其作为参数传递。我最近使用
find
找到了。我不喜欢显示命令的输出。我想根据文件名查找一个文件,然后执行扫描,并通过将其存储为变量来处理原始文件的内容。我希望将其存储为变量的原因是,我可以将其作为参数传递给另一个程序。

要将文件路径存储在变量中,请使用:

fil=$(find /Users/Documents -name Myfile)
要实际重定向找到的文件的输出,请使用find和so中的exec标志:

find /Users/Documents -name Myfile -exec cat '{}' \; > outputfile
如果要将输出存储在变量中,而不是重定向到文件,可以使用:

conts=$(find /Users/Documents -name Myfile -exec cat '{}' \;)

您可以使用的其他选项如下:

find /Users/Documents -name Myfile | xargs cat > outputfile


find /Users/Documents -name Myfile -print0 | xargs -0 cat > outputfile
-print0允许在标准输出上打印完整的文件路径,后跟空字符和-0 xargs标志,有效地处理文件名中的空格


致以最诚挚的问候

如果您只想将路径存储在变量中,请使用fil=$(find/Users/Documents-name Myfile)@i'i'i'i'i'i'i'i'i'i'i'i'i将文件名或文件内容存储在变量中可能会导致问题。根据您对找到的文件的具体操作,最好直接从find运行命令,例如
find/Users/Documents-name Myfile-exec yourcommand'{}\从问题中可以看出,我想使用该文件作为参数来运行静态分析工具,该工具需要某个文件作为参数->“我的特定用例是对该文件执行静态分析,我需要将其作为参数传递。”-因此,无法按照您演示的方式执行。Raman Sailopal回答就足够了。如果解决方案满足您的要求,请花时间接受该解决方案作为答案。@i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i'i-执行…
?这将把文件名作为参数传递给
yourcommand
。如果您能在问题中明确说明您想要对该文件做什么,那么提供一个好的解决方案会更容易。本网站的目的不仅是为您个人回答问题,还为可能有类似问题的人提供问题和答案的参考。这就是为什么问题应该清楚地说明您的用例。为什么您希望这样
find-exec cat{}+
将执行您想要的操作;但是,
find
单独列出匹配文件的名称。编辑后您的问题仍然不清楚。我建议添加一个示例,说明存在哪些文件,以及希望使用
find
找到的文件运行哪些命令。请注意,
find
可能会找到多个匹配文件,例如,如果您有
/Users/Documents/Myfile
/Users/Documents/somedirectory/Myfile
。定义在这种情况下应该发生什么。