Я могу предложить несколько сложный ответ, без архивирования, но включая tar?
Здесь мы идем:
tar -cf - ./bin | ssh target.org " ( cd /home/earlz/blah ; tar -xf - ) "
Это упакует каталог./bin tar (-cf: = создайте файл), имя файла - (ни один, stdout), и передайте его по каналу посредством ssh-команды на target.org (который мог бы также быть IP), где команда в кавычках выполняется, который является: CD, чтобы болтать, и смолить-xf (извлекают файл) - ни один, никакое имя, просто stdin.
Это - как будто Вы упаковываете пакет дома, приносите его к сообщению, затем ездите на работу, где Вы ожидаете пакет и открываете его.
Возможно, существует намного более изящное решение, которое просто использует sftp.
Самый очевидный ответ должен только использовать различную команду, и это - вероятно, хорошая идея добавить - параметр больших файлов скорости к нему.
diff --speed-large-files a.file b.file
Вы упоминаете неотсортированные файлы поэтому, возможно, необходимо отсортировать файлы сначала
sort a.file > a.file.sorted
sort b.file > b.file.sorted
diff --speed-large-files a.file.sorted b.file.sorted
Вы могли сохранить создание дополнительного выходного файла путем передачи по каналу 2-го вывода вида, прямого в разность
sort a.file > a.file.sorted
sort b.file | diff --speed-large-files a.file.sorted -
Очевидно, они будут работать лучше всего в системе с большим количеством доступной памяти, и Вам, вероятно, будет нужно много свободного пространства на диске также.
Не было ясно из Вашего вопроса, попробовали ли Вы их прежде. Раз так затем было бы полезно знать то, что пошло не так, как надо (занял слишком много времени и т.д.). Я всегда находил, что вид запаса и различные команды имеют тенденцию делать, по крайней мере, а также пользовательские команды, если нет некоторые очень зависящие от домена свойства файлов, которые позволяют сделать вещи по-другому.
Сортировка исходных данных и сообщение diff
программа это - исходные данные, отсортирована, обеспечил бы значительную скорость. Я не знаю ни о ком diff
с опцией как этот, но comm
принимает отсортированный вход и будет намного более быстрым, если он делает достаточно в Ваших целях.
mkfifo
создать[ab].file.sorted
перед использованием их, как произведено дляsort
. Помещенный обаsort
s с&
в фоновом режиме и использование оба, переданные по каналу как имена файлов для различного – krissi 16.09.2010, 14:45diff <(command 1) <(command 2)
– Michael Mrozek♦ 16.09.2010, 17:12<(cmd1) <(cmd2)
работы синтаксиса (поскольку это походит на вход стандарта перенаправления дважды!), попробоватьecho hello <(cmd1) <(cmd2)
. Вы будете видеть что-то какhello /dev/fd/63 /dev/fd/62
который внезапно проясняет ;) – alex 16.09.2010, 22:53--speed-large-files
опция не помогает, если у Вас нет достаточного количества RAM. Кроме того, предварительная сортировка не полезна, если у Вас есть многострочная рекордная структура, Вы хотите сохранить. Опции, упомянутые выше (@unhammer), интересны, но вывод отrdiff
иbsdiff
является довольно двоичным. Установкаbdiff
от Семейной реликвии Панель инструментов похожа на dauning задачу (требует Семейной реликвии devtools, прекратившихся заголовочных файлов, …). Это действительно стоит усилия? Есть ли другие альтернативы? – Christian Pietsch 02.02.2015, 19:33--speed-large-files
опция не помогает, если у Вас нет достаточного количества RAM. Кроме того, предварительная сортировка не полезна, если у Вас есть многострочная рекордная структура, Вы хотите сохранить. Опции, упомянутые выше (@unhammer), интересны, но вывод отrdiff
иbsdiff
является довольно двоичным. Установкаbdiff
от Семейной реликвии Панель инструментов похожа на dauning задачу (требует Семейной реликвии devtools, прекратившихся заголовочных файлов, …). Это действительно стоит усилия? Есть ли другие альтернативы? – Christian Pietsch 02.02.2015, 19:33