Как скопировать несколько файлов из одного каталога в другой

Соответствующая информация об IP-пакетах: адрес источника , адрес назначения , порт источника и порт назначения . Пара портов источника и порта назначения используется клиентом и сервером. :инициирующая сторона отправляет пакет на порт назначения и выбирает порт источника, в ответ порт источника используется в качестве порта назначения, а порт назначения — в качестве порта источника.

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

Я по шагам объясняю, как пакеты перемещаются между вашим клиентом и сервером. Поскольку я не знаю подробностей об используемом вами прокси-сервере, я предполагаю, что весь трафик на прокси-сервер ретранслируется на сервер и происходит прозрачно.

Шаги между вашим клиентом и сервером:

client <---> VPN <---> NAT <---> proxy <---> server

От клиента к серверу:

  1. Клиент отправляет пакет на адрес назначения(прокси ). Маршрутизация используется для отправки трафика через VPN.
  2. NAT пересылает пакет. NAT изменяет адрес источника на свой собственный, используя правило NAT источника. адрес назначения (прокси )без изменений .
  3. Прокси получает пакет от NAT, ретранслирует его как обычно.
  4. Целевой сервер получает пакет от прокси.

От сервера к клиенту:

  1. Целевой сервер отправляет пакет прокси-серверу.
  2. Прокси ретранслирует пакет в NAT.
  3. NAT пересылает пакет. Адрес назначения изменен на адрес вашего клиента по правилу NAT назначения. Адрес источника (прокси )не изменился .
  4. Ваш клиент получает пакет.
1
24.12.2019, 19:47
1 ответ

Существует несколько подходов. Самый простой — перейти в первый каталог

cd dir1 ; cp $files../dir2

Одна из проблем заключается в том, что строка с именами, разделенными пробелами, не является лучшей формой для манипулирования именами, особенно если они содержат пробелы. У вас есть то, что у вас есть, но будем надеяться, что у вас есть bash, zsh, ksh или что-то подобное с массивами. Превратите строку в массив:

names=( $files )

Затем вы можете применять такие преобразования, как добавление «dir1/» в начале каждого элемента массива имен.

cp "${names[@]/#/dir1/}" dir2

Это не самый очевидный синтаксис, поэтому позвольте мне немного его разобрать.

  1. Первый /вводит операцию подстановки.
  2. #соответствует началу элемента, подобно ^в регулярных выражениях.
  3. Второй /завершает часть «от» подстановки.
  4. dir1/— это часть замены «to», в третьей нет ничего особенного /, это просто символ в части «to».
  5. Параметр [@]применяется ко всем элементам массива. Использование [@]внутри двойных кавычек останавливает разделение слов.
  6. {и }необходимы для группировки [@]и операции подстановки вместе с именем переменной.
  7. $— это просто обычная ссылка на переменную.
4
27.01.2020, 23:22

Теги

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