Во-первых, запустите ssh на хосте постоянно с локальным перенаправлением портов в другом терминале. Например:
ssh -N -v -L 22022:hostB:22 hostA
Затем "канал" rsync с ssh к localhost:22022
. Один вариант должен записать в ~/.ssh/config:
Host hostB
HostName localhost
Port 22022
Замена -e ssh
с -e
к некоторому сценарию, который содержит:
ssh hostA 'ssh hostB' "$@"
Я не попробовал его, таким образом, некоторые детали будут разработаны дополнительно.
Я думаю, что эта ссылка могла бы разрешить вещи, Выпуск 7 Спецификаций Основы Open Group, Станд. IEEE 1003.1, 2013 Выпуск. Вот является выборка формы раздела спецификацией для находки:
выборка от спецификации находки
- операнд размера относится к размеру файла, а не количеству блоков, которые это может занять в файловой системе. Намерение состоит в том, что st_size поле, определенное в Системном объеме Интерфейсов POSIX.1-2008, должно использоваться, не st_blocks, найденный в исторических реализациях. Существует по крайней мере две причины этого:
И в System V и в BSD, найдите только использование st_size в вычислениях размера для операндов указанным этим объемом POSIX.1-2008. (BSD использует st_blocks только при обработке-ls основного устройства.)
Пользователи обычно думают о размере файла с точки зрения байтов, который является также единицей, используемой ls утилитой для вывода от-l опции. (И в System V и в BSD, ls использует st_size для-l поля размера опции и использует st_blocks для ls-s вычисления. Этот объем POSIX.1-2008 не указывает ls-s.)
Если я понимаю этот раздел правильно, первый раздел говорит все это "-операнд размера относится к размеру файла". Таким образом, размер - то, о чем сообщают при оценке st_size НЕ st_blocks.
Таким образом, необходимо смочь использовать команды как:
# find files over 1G in size
$ find / -type f -size +1G
# find files smaller than 1G in size
$ find / -type f -not -size +1G
То предложение сильно вводит в заблуждение. Если Вы не хотите входить в окровавленные детали, забывать, что Вы читаете его и просто принимаете это -size
взгляды на размер файла.
Размер файла является числом байтов, которые можно считать из него. Файл размера N является массивом байтов N.
Когда Вы передаете единицу кроме байтов (c
) к -size
, find
управляйте округляет размер файла до нескольких из единицы. Например, -size 11k
файлы соответствий 10 240 - 11 263 байтов; -size 12345M
файлы машин 12 943 622 145 - 12 944 670 720 байтов. Единицу по умолчанию, по историческим причинам, называют блоками, и ее значение составляет 512 байтов.
Это было легкой частью. Теперь в типичных файловых системах, данные файла хранятся в блоках. Для файловой системы, размер блока которой составляет 512 байтов ¹, 5 123-байтовый файл занял бы 11 блоков данных (последний только частично используемый). Так find -size 11
обычно файлы соответствий, которые состоят из 11 блоков.
На самом деле существуют возможные сложности. ОС должна иметь место, где сохранить местоположение всех блоков, которые составляют файл. Если существует слишком много блоков, это должно выделить еще некоторые блоки только для содержания адресов других блоков. Такие блоки называют косвенными блоками. find
руководство говорит Вам, что эти блоки не приняты во внимание — который неудивителен с тех пор find
не считает блоки, это смотрит на размер файла.
С другой стороны возможно иметь файл, который использует меньше блоков, чем Вы ожидали бы от его размера из-за сжатия. Классические файловые системы Unix только реализуют сырую форму сжатия: могут быть опущены блоки, которые состоят исключительно из пустых байтов. Это известно как редкие файлы.
Программа может знать, сколько блоков было выделено файлу; это st_blocks
поле stat
структура, в противоположность st_size
. GNU находит только использование этим в его коде дисплея для -ls
и -printf
, никогда для любого предиката. st_blocks
значение дает сырой признак того, сколько места файл занимает на диске, который может быть меньше, чем размер файла, если файл редок, но это не принимает косвенные блоки во внимание.
v Ext2, ext3 и ext4 имеет блоки 1 КБ, 2 КБ или 4 КБ.
find / -type f -size -1G
. – rush 04.06.2013, 06:57