Как я могу указать путь к выходному сигналу этого скрипта?Как я могу указать путь к выходу этого скрипта?
Это моя команда: (ls -d * /); echo -n $ i; ls -R $ i | grep "wp-config.php";
Это мой выходной ток: /wp-config.php
Как я могу указать путь к выходному сигналу этого скрипта?Как я могу указать путь к выходу этого скрипта?
Это моя команда: (ls -d * /); echo -n $ i; ls -R $ i | grep "wp-config.php";
Это мой выходной ток: /wp-config.php
Кажется, что вы хотите найти путь к файлу под названием «WP-config.php». Помогает ли следующая помощь?
find $PWD -name 'wp-config.php'
Ваш сценарий несколько путается: почему 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
.
Ниже приведено описание команды: http://explainshell.com/explain?cmd=%28ls+-d+*%2F+%29%3B+ echo + -n +% 24i% 3B + ls + -R +% 24i + | + grep +% 22wp-config.php% 22 +% 3B , но я стараюсь избегать найти как можно больше (общая серверная среда). –
Ну, я пытаюсь вообще не использовать поиск. –
Что представляет ваша переменная '$ i'? С новой конечной точки зрения: (ls -d * /); echo -n $ i; ls -R $ i' эквивалентен 'ls -R' – csiu