Как передавать файлы с удаленного сервера на локальный компьютер, когда SSH'D Удаленный сервер

< from > to

не работает, потому что там нет команды; нет процесса. Оболочка открывает / создает файлы и упорядочивает перенаправления (это означает, что дескрипторы файлов, ссылающиеся на эти файлы, устанавливаются как 0 и 1: стандартный ввод и стандартный вывод). Но там нечего делать, чтобы выполнить цикл для чтения со стандартного ввода и записи на стандартный вывод.

zsh выполняет эту работу, заменяя настраиваемую пользователем команду в этом случае "нулевой команды". Команда не отображается в командной строке, но все еще там. Для него создан процесс, и он работает точно так же. NULLCMD по умолчанию cat , поэтому <от> до на самом деле означает cat до в zsh , если NULLCMD не установлен в другое значение; это команда "неявной кошки".

«Бесполезное использование cat» происходит, когда cat используется в качестве посредника для чтения из файла и передачи данных другому процессу, чей файловый дескриптор может быть просто связан с исходным файлом.

Если cat можно удалить из ситуации, так что оставшиеся команды все еще могут выполнять ту же задачу, это бесполезно. Если он несъемный, значит, он не бесполезен.

# useless, removable:
$ cat archive.tar | tar tf -    #  -->  tar tf archive.tar

# not removable (in POSIX shell):
$ cat > file
abc
[Ctrl-D]

# likewise:
STRING=$(cat file)

кот , который заменяется , это не одно и то же.Например, вместо cat> file мы можем использовать vi file для создания файла. Это не считается удалением cat , при этом оставшееся количество используется для выполнения той же задачи.

Если cat является командой only в конвейере, то, конечно, ее нельзя удалить; никакая перестановка того, что осталось, не сделает аналогичную работу.

Некоторые сценаристы оболочки используют cat , потому что они думают, что это позволяет им переместить входной операнд ближе к левой стороне командной строки. Однако перенаправления могут быть в любом месте командной строки:

# If you're so inclined:
# move source archive operand to the left without cat:
$ < archive.tar tar xf - > listing
-1
25.09.2018, 07:06
1 ответ

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

Я должен отметить, что использование FTP для передачи файлов небезопасно. FTP также плохо работает с маршрутизаторами NAT.

Если вам нужно инициировать передачу с удаленной стороны, создайте обратный TCP-туннель с помощью SSH и используйте его для подключения к локальному компьютеру и передачи файлов.

0
28.01.2020, 05:12

Теги

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