Я не хочу использовать ssh без пароля, так как мой файл секретных ключей может быть поставлен под угрозу, который еще хуже.
Нет, это неправильно. Файл секретных ключей обеспечивает больше безопасности, чем пароль. Используйте файл секретных ключей. Файл секретных ключей шифруется с паролем; если кто-то получает файл ключей, им все еще нужен Ваш пароль. Если бы Вы использовали аутентификацию по паролю, то любой овладевающий паролем был бы дома свободный.
Выполненный ssh-agent
на время Вашей сессии. Прежде чем Вы будете использовать конкретный ключ, будете вводить пароль с ssh-add
(или посредством некоторой подсказки GUI). Затем не будет подсказки при соединении использования этого ключа.
С GNU, или FreeBSD или NetBSD или OpenBSD (и потенциально другие) awk
:
find . -type f -exec awk '
/^#!.*python/{print FILENAME}
{nextfile}' {} +
Только посмотрел бы на первую строку каждого файла и будет работать как немногие awk
s по мере необходимости.
nextfile
оператор выше не является стандартным, но найден в нескольких реализациях включая GNU один (который является, вероятно, где он произошел из).
В то время как код выше, казалось бы, работал бы в других реализациях также, nextfile
оператор ничего не сделал бы там (будет распознан как выражение, состоящее в сбросе nextfile
переменная), так, чтобы означал бы все файлы, будет считан полностью, и имя файла было бы распечатано для каждого согласующего отрезка длинной линии.
Если Ваш awk
поддержки FNR
(как POSIX awks делают, но не оригинал awk
, таким образом на Солярисе /usr/xpg4/bin/awk
и нет /usr/bin/awk
) и нет nextfile
, можно записать это:
find . -type f -exec awk 'FNR == 1 && /^#!.*python/{print FILENAME}' {} +
Который все еще работал бы как немногие awk
s как возможный, но считал бы файлы полностью.
Другая альтернатива, чтобы не читать файлы полностью и это работало бы с каждым awk
и find
но означал бы выполнять тот awk
на файл был бы:
find . -type f -exec awk '
/^#!.*python/{r=1};{exit}
END {exit(1-r)}' {} \; -print
grep -l
прекратил бы читать файл, как только он находит соответствие для файлов без соответствия, он считал бы целый файл. Это также нашло бы соответствия посреди файлов, так например, это могло соответствовать на ashar
файл, который содержит сценарии Python. – Stéphane Chazelas 25.02.2013, 23:56