Как я использую {} оператор в выполнении находки внутреннее должностное лицо

Поместить

sudo -n python /home/matt/tornadoServer/tornadoDeploy.py &

в файл/etc/rc.d/rc.local. Или независимо от того, что эквивалент для Вашего распределения.

Принятие Вашего сценария является демоном хорошего поведения и что Вы настроили sudo для не требования пароля для того, чтобы запустить скрипт.

Считайте это о сценариях запуска и это о библиотеке демона Python. Кроме того, разве Вы не должны выполнять торнадо позади реального http сервера?

4
задан 17 April 2013 в 12:48
3 ответа

Для решения этой проблемы можно использовать простой цикл.

for f in $(find /var/www/ -path '*wp-admin/index.php'); do mv $f $(dirname $f)/index_disabled; done
2
ответ дан 3 December 2019 в 02:51

Ваша проблема не в том, что он не интерпретируется дважды, как покажет выполнение

find . -type f -exec echo {} {} \;

. Проблема в том, что {} нельзя использовать в качестве аргумента функции, как вы пытаетесь. По моему (ограниченному) опыту, если вы хотите поумничать с find и содержимым {} , вам необходимо написать сценарий оболочки, который вызывается из find , который принимает {} в качестве единственного аргумента и выполняет умные функции внутри этого скрипта.

Вот пример умного скрипта:

[me@risby tmp]$ cat /tmp/clever.sh 
#!/bin/bash
echo $1 $(dirname $1)/index_disabled

Вот я использую его с find и последние несколько строк результатов:

[me@risby tmp]$ find . -type f -exec /tmp/clever.sh {} \;
[...]
./YubiPAM-1.1-beta1/stamp-h1 ./YubiPAM-1.1-beta1/index_disabled
./YubiPAM-1.1-beta1/depcomp ./YubiPAM-1.1-beta1/index_disabled
./YubiPAM-1.1-beta1/INSTALL ./YubiPAM-1.1-beta1/index_disabled

Как видите, если бы я заменил echo в сценарии оболочки на mv , я бы получил желаемый результат.

]
4
ответ дан 3 December 2019 в 02:51

Вам нужно будет использовать команду xargs и небольшой трюк:

$ find /var/www/ -path '*wp-admin/index.php' | xargs -i sh -c 'mv {} $(dirname {})/index_disabled'
2
ответ дан 3 December 2019 в 02:51

Теги

Похожие вопросы