Вот пример, который не требует создания временного файла сначала и будет работать над всеми возможными именами файлов:
for f in /parentdirectory/*; do
if grep -q 'keyword' "$f"; then
mv "$f" /someotherdir
fi
done
Попробуйте:
diff local_file <(ssh user@server 'cat remote_file')
или используя vimdiff
:
vimdiff local_file scp://server//path/to/remote_file
Может быть, это не очень полезно в вашем конкретном случае, но я часто просто использую
sum -r
на каждой машине, и вручную сравниваю контрольные суммы. Это позволяет сравнивать файлы даже тогда, когда они недоступны по ssh соединению. Конечно, все ответы на этот вопрос - "идентичны ли они", но часто этого достаточно для моих нужд. Это также позволяет легко проверить, что один и тот же файл на 3-х, 4-х и более машинах.
Если вы предпочитаете более визуальный подход к сеансу терминала. У Midnight Commander есть опция удаленной файловой системы (опция SFTP-ссылка ... в меню) и опция визуального сравнения файлов. Он не устанавливается по умолчанию в большинстве систем Linux, но доступен в большинстве базовых репозиториев. Шаги:
mc
) в папке, содержащей файл для сравнения sftp: // @ /
). ins
, выберите / выделите файлы для сравнения. ( вкладка
переключается между левой и правой панелью). Примечание: Меню полуночного командующего обычно можно получить с помощью мыши в сеансе терминала. То, что не работает F9
, также попадает в меню.
ssh user@remote_host "cat remote_file.txt" | cmp local_file.txt
или, если вы не хотите показывать результат, можете запустить в тихом режиме
ssh user@remote_host "cat remote_file.txt" | cmp -s local_file.txt