Непонимание цели подстановки процесса

Думаю, эта команда поможет.

ssh user@host "cd /path/to/data/;tar zc directory_name" | tar zx 

РЕДАКТИРОВАТЬ: в более ранней версии было два неправильных параметра «f».

Теперь, прежде всего, вы должны выполнить эту команду с целевого хоста. И подробности, которые необходимо пояснить:

  1. ssh user @ host откроет соединение с хост-машиной, с которой должны быть переданы данные.
  2. cd / path / to / data приведет к каталогу, в котором хранятся требуемые данные.
  3. tar zc * инициирует сжатие и поместит его в STDOUT
  4. Теперь pipe (|) будет конвейерным конвейером STDOUT источника в STDIN места назначения, где работает tar zx, и непрерывно распаковывать поток данных, поступающий из источника.

Как видите, эта команда выполняет сжатие на лету и сохраняет полосу пропускания. Для получения лучших результатов можно использовать и другие способы сжатия, но помните, что сжатие и распаковка требуют циклов ЦП.

Ссылка

2
21.08.2018, 01:33
1 ответ

`foo`essustitución de comando , no sustitución de proceso. $(foo)también es sustitución de comandos, y es la forma preferida ya que es más fácil usar la sustitución de comandos anidados:$(foo1 $(foo2 $(foo3...))).

Con la sustitución de comandos, `foo`/ $(foo), la salida de foose usa como palabras en la línea de comandos. Entonces for in $(echo a b c)se vuelve como si hubieras usado for i in a b cen su lugar. El comando en la sustitución de comando se ejecuta primero, se obtiene su salida y luego la salida se usa para crear la siguiente línea de comando, que luego se ejecuta, y así sucesivamente. La división de campos, la expansión de comodines, etc. suceden, por lo que citar es una consideración importante en la sustitución de comandos.

Con sustitución de proceso , <(foo)/ >(foo), el stdin/stdout del proceso se proporciona como un archivo, por lo que cat <(foo)se vuelve como si hubiera usado foo > /some/filey cat /some/file, y tee >(foo)se vuelve como si hubiera hecho tee /some/filey foo < /some/file. Los comandos se ejecutan simultáneamente. Dado que el shell no ve la salida, la división de campos y la expansión de comodines no son una preocupación.

7
27.01.2020, 21:52

Теги

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