2014-01-12 3 views

ответ

0

Кажется, что вы хотите найти путь к файлу под названием «WP-config.php». Помогает ли следующая помощь?

find $PWD -name 'wp-config.php' 
+0

Ну, я пытаюсь вообще не использовать поиск. –

+0

Что представляет ваша переменная '$ i'? С новой конечной точки зрения: (ls -d * /); echo -n $ i; ls -R $ i' эквивалентен 'ls -R' – csiu

0

Ваш сценарий несколько путается: почему ls -d */не показывает какой-либо результат? Какова стоимость $ i? На самом деле ваша проблема состоит в том, что ls -R содержит список всех подкаталогов, но не дает вам полных путей для их содержимого.

Ну, find является лучшим инструментом для этого, но вы можете имитировать его в этом случае с помощью сценария, как это:

#!/bin/bash 

searchFor=wp-config.php 
startDir=${1:-.} 

lsSubDir() { 
    local actDir="$1" 
    for entry in $(ls "$actDir"); do 
    if [ -d "$actDir/$entry" ]; then 
     lsSubDir "$actDir/$entry" 
    else 
     [ $entry = $searchFor ] && echo "$actDir/$entry" 
    fi 
    done 
} 

lsSubDir $startDir 

сохранить его в файле, как findSimulator, сделайте его исполняемым и вызвать его каталог, в который следует начинать поиск в качестве параметра.

Будьте осторожны: этот скрипт не очень эффективен, он может остановиться на больших деревьях подкаталогов из-за рекурсии. Я настоятельно рекомендую решение, используя find.

+0

Ниже приведено описание команды: http://explainshell.com/explain?cmd=%28ls+-d+*%2F+%29%3B+ echo + -n +% 24i% 3B + ls + -R +% 24i + | + grep +% 22wp-config.php% 22 +% 3B , но я стараюсь избегать найти как можно больше (общая серверная среда). –

Смежные вопросы