我在网上做了一些搜索,我试图找到一种方法来递归列出所有文件及其绝对路径和权限。我想这样做是为了我可以grep
得到我想要的,这样当我运行命令时,我就可以得到匹配的文件、它们的权限和它们的完整路径,比如:
<search command> | grep file.name
Run Code Online (Sandbox Code Playgroud)
输出:
/home/current/Desktop/file.name
/etc/program/src/file.name
Run Code Online (Sandbox Code Playgroud)
我更喜欢使用,ls
因为它是最快的,我会输入:
ls -alR $PWD/
Run Code Online (Sandbox Code Playgroud)
但这并没有显示文件的路径,所以如果我grep
输出了,那么我会看到文件权限,而不是它的来源目录。
我可以使用ls
integrated withfind
并grep
以我想要的格式获得输出,我可以使用这样的东西:
ls -ault `find $PWD/ -type f` | grep file.name
Run Code Online (Sandbox Code Playgroud)
但这非常慢,我猜是因为实际上有两个命令正在运行。
如果我只使用find
without ls
or grep
,那么它会更快,但要输入一堆:
find $PWD/ -type f -name file.name -printf '%M %u %g %s\t%a\t%p\r\n'
Run Code Online (Sandbox Code Playgroud)
这会给我一个很好的格式(它还包括用户、组、大小和最后访问日期,这很有帮助)。然而,这是一个吨输入,它肯定是不一样快,使用ls
与grep
。
有没有比使用更快的方法来做我想做的事情find
?