如何在Unix中执行Python文件查找命令

问题描述:

好吧。所以我可以说我在我的电脑的主目录中。我如何搜索一个file.py并在一行中使用Unix执行它?两行是好的,但我们假设我们不知道文件路径。如何在Unix中执行Python文件查找命令

它是一个简单的问题,但我无法找到答案

更新

每小次郎的评论,更好的方法是使用-exec参数找到。

$ find ./ -name 'file.py' -exec python '{}' \; 

为找到手册页解释了它的用法比我更可以看到here-exec command ;下。但简而言之,它将针对每个结果调用command,其中任何参数均为\;,并用结果的文件路径替换'{}'

同样在find的手册页中,如果您使用以下方法,则值得查看与-print-print0标志相关的注释。

原来的答案

是否像下面这样做你想要什么?

$ cd /path/to/dir/ 
$ find ./ -name 'file.py' | xargs -L 1 python 

这是一个非常有用的图案,其中

find ./ -name 'file.py' 

将列出所有的文件的路径在当前目录或任何子目录匹配file.py名。

将此输出管道输入到xargs中,该输出将其标准输入的每一行作为参数传递给提供给它的程序。在这种情况下,python。但是,我们要一次给xargs的每一行同时与-L 1

但是执行Python,从wikipedia article for xargs

一个还可以调用输入的每一行命令,这将匹配当前路径下名为'file.py'的所有文件。如果需要,您可以将其限制为带有标记的第一个结果为find

+0

考虑使用'-exec'参数来'find'而不是'xargs'。 – kojiro

+0

谢谢,这是一个更好的方法。更新答案包括那个。 –