Выполните разность между локальными и удаленными файлами

Вот пример, который не требует создания временного файла сначала и будет работать над всеми возможными именами файлов:

for f in /parentdirectory/*; do
    if grep -q 'keyword' "$f"; then
        mv "$f" /someotherdir
    fi
done
39
11.05.2015, 10:16
5 ответов
ssh user@remote_host "cat remote_file.txt" | diff - local_file.txt

Source

57
27.01.2020, 19:35

Попробуйте:

diff local_file <(ssh user@server 'cat remote_file')

или используя vimdiff:

vimdiff local_file scp://server//path/to/remote_file
18
27.01.2020, 19:35

Может быть, это не очень полезно в вашем конкретном случае, но я часто просто использую

sum -r

на каждой машине, и вручную сравниваю контрольные суммы. Это позволяет сравнивать файлы даже тогда, когда они недоступны по ssh соединению. Конечно, все ответы на этот вопрос - "идентичны ли они", но часто этого достаточно для моих нужд. Это также позволяет легко проверить, что один и тот же файл на 3-х, 4-х и более машинах.

9
27.01.2020, 19:35

Если вы предпочитаете более визуальный подход к сеансу терминала. У Midnight Commander есть опция удаленной файловой системы (опция SFTP-ссылка ... в меню) и опция визуального сравнения файлов. Он не устанавливается по умолчанию в большинстве систем Linux, но доступен в большинстве базовых репозиториев. Шаги:

  1. Запустить Midnight Commander (команда: mc ) в папке, содержащей файл для сравнения
  2. На другой стороне (например, меню Right ) создать sftp ссылка на другой сервер в той же папке ( sftp: // @ / ).
  3. Используя клавишу ins , выберите / выделите файлы для сравнения. ( вкладка переключается между левой и правой панелью).
  4. В меню Команда выберите Сравнить файлы

Примечание: Меню полуночного командующего обычно можно получить с помощью мыши в сеансе терминала. То, что не работает F9 , также попадает в меню.

1
27.01.2020, 19:35

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

1
02.10.2020, 21:12

Теги

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