Я боюсь не полностью - события, кажется, активируются на нажатии клавиши (в противоположность ключевому выпуску), следовательно лучшее, которого Вы, вероятно, сможете достигнуть, Super_L
открытие меню, и если Вы не отпускаете ключа и нажатия r
быть интерпретируемым как Super+r
, который открыл бы Ваш терминал (по крайней мере, как это работает на меня).
Если вы хотите только увидеть, согласны ли файлы, то вам действительно не нужно diff. Просто используйте Sha1sum
или что-то в этом роде.
Например:
#!/bin/sh
command="foo;bar|baz"
for server in server1 server2 server3 server4 server5 server6: do
echo $server $(ssh $server "$command" |sha1sum)
done | sort -k2
Это даст вам список Space Spires Server, SHA1Sum пары. Серверы с одним и тем же SHA1Sum имеют одинаковый выход:
server1 55ca6286e3e4f4fba5d0448333fa99fc5a404a73 *-
server3 55ca6286e3e4f4fba5d0448333fa99fc5a404a73 *-
server6 55ca6286e3e4f4fba5d0448333fa99fc5a404a73 *-
server2 d961c3de6d6c99429806ae3d6d03f316a1168ac6 *-
server4 d961c3de6d6c99429806ae3d6d03f316a1168ac6 *-
server5 dcdc24e139db869eb059c9355c89c382de15b987 *-
Вы можете сделать дальнейшую обработку, чтобы получить список сопоставленных серверов, например:
#!/bin/sh
command="foo;bar|baz"
for server in server1 server2 server3 server4 server5: do
echo $server $(ssh $server "$command" |sha1sum)
done | sort -k2 | while read srv sum; do
if [ "$prevsum" == "$sum" ]; then
echo -n " "
else
echo
fi
echo -n $srv
prevsum=$sum
done
, который дает вывод, такой как:
server1 server3 server6
server2 server4
server5
Инструмент
Инструмент может быть некоторое использование для вас здесь (должно быть в репозиториях). Если у вас есть большое количество файлов для сравнения, вы можете использовать его для уменьшения работы, которую вы должны сделать, идентифицируя, какие из них уже идентичны. Как отмечалось ниже, он работает только с аргументами каталога. Если у вас есть все файлы для разных в одном каталоге, вы можете сделать что-то вроде:
fdupes .
для определения файлов, которые одинаковы. Или:
comm -13 <(fdupes . |sort -u) <(find . -maxdepth 1 | sort)
для определения файлов, которые являются уникальными.
Команда дифференциров
также может быть полезной.