如何在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
。
考虑使用'-exec'参数来'find'而不是'xargs'。 – kojiro
谢谢,这是一个更好的方法。更新答案包括那个。 –