Команда Shell для поиска файлов в каталоге - PullRequest
6 голосов
/ 03 января 2011

С помощью команды оболочки мне нужно перечислить все файлы на моем сервере в следующем каталоге:

/ home / * / public_html / images / *. Php

Есть несколько много времени, чтобы сделать это вручную.Я действительно понятия не имею, когда речь заходит об этих командах.

Ответы [ 4 ]

15 голосов
/ 05 февраля 2014
find /path/to/directory/.  -path "*/match/this/path/*" -type f -name "*.php"
12 голосов
/ 03 января 2011

Shell Script:

find /home/*/public_html/images -iname "*php" -exec echo {} \;

Затем вы можете изменить команду -exec для выполнения любых действий с возвращенными файлами.В этом случае мы повторяем их, но вы можете легко выполнять и другие действия.

5 голосов
/ 03 января 2011

Позвольте bash расширить файлы для вас и используйте ls, чтобы перечислить их:

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

Пример вывода:

/home/grant/public_html/images/bar.php
/home/grant/public_html/images/foo.php
/home/marcog/public_html/images/helloworld.php
0 голосов
/ 03 января 2011

Используйте функцию PHP glob

glob('/home/*/public_html/images/*.php')

. Она вернет массив соответствующих строк пути.Вы также можете использовать:

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

или:

for i in /tmp/*/public_html/images/*.php;
do 
some_command "$i"
done

из оболочки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...