Shell命令用于查找目录模式中的文件

Gra*_*win 7 linux bash shell console

使用shell命令,我需要在以下目录模式中列出服务器上的所有文件:

/home/*/public_html/images/*.php

还有一些需要很长时间才能手动执行此操作.我真的不知道这些命令是什么.

kar*_*k m 15

find /path/to/directory/.  -path "*/match/this/path/*" -type f -name "*.php"
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这就是我需要的.它在`/ path/to/directory/foo/match/this/path`和`/ path/to/directory/foo/bar/match/this/path/baz /`中找到文件 (2认同)

jmo*_*253 12

Shell脚本:

find /home/*/public_html/images -iname "*php" -exec echo {} \;
Run Code Online (Sandbox Code Playgroud)

然后,您可以更改-exec命令以对返回的文件执行任何操作.在这种情况下,我们回应它们,但您也可以轻松地执行其他操作.

  • 这将匹配`/ home / foo / public_html / images / file.php`,但不匹配`/ home / foo / bar / public_html / images / file.php`。我可以在任何深度匹配目录吗? (2认同)

mar*_*cog 5

让bash为您展开文件并用于ls列出它们:

ls /home/*/public_html/images/*.php
Run Code Online (Sandbox Code Playgroud)

示例输出:

/home/grant/public_html/images/bar.php
/home/grant/public_html/images/foo.php
/home/marcog/public_html/images/helloworld.php
Run Code Online (Sandbox Code Playgroud)