скачать удаленный файл из sftp

Вопрос или проблема

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

Есть ли способ это сделать?

SFTP не имеет команды cat.

Я пробовал get file -, надеясь, что он воспримет - как stdout, но это просто создает файл с именем “-“.

Я пробовал get file /dev/stdout, но это приводит к следующему:

sftp> get file /dev/stdout
Получение /home/username/file в /dev/stdout
/home/username/file                100%  506     9.0KB/s   00:00
ftruncate "/dev/stdout": Неверный аргумент
Не удалось записать в "/dev/stdout": Неправильный поиск

Другой способ может быть get file /tmp/file, выйти из SFTP, прочитать /tmp/file, удалить /tmp/file и вернуться в SFTP, но это так же утомительно. Есть ли простой способ?

Иметь cat в SFTP означало бы, что содержимое файла все равно должно перемещаться по сети, к вашему локальному компьютеру, чтобы отображаться для ваших глаз, что по сути означает, что вы получаете файл. Вам не нужно «выходить из SFTP»: SFTP может выполнять команды локально с помощью !.

Поэтому вы можете сделать:

sftp> lcd /tmp
sftp> get file
sftp> !cat file

Смена на /tmp гарантирует, что get file не перезапишет file в вашей текущей (локальной) директории; если это не проблема, вы можете пропустить этот шаг.

Вы не можете выполнить cat через SFTP, потому что он предназначен исключительно для передачи файлов. Вы можете проверить “man sftp”, чтобы найти список команд, которые вы можете использовать во время интерактивной оболочки.

Ответ или решение

Вопрос: Как прочитать удалённый файл во время сессии SFTP?

Если вы находитесь в сессии SFTP и хотите прочитать содержимое файла, не выходя из этого сеанса, вам не нужно прибегать к другим методам, таким как SSH или создание временного файла. Давайте рассмотрим, как это можно сделать эффективно, используя функциональность SFTP.

Понятие о SFTP

SFTP (SSH File Transfer Protocol) – это безопасный протокол передачи файлов, который позволяет осуществлять операции с файлами на удалённом сервере. Однако, в отличие от других инструментов, таких как SSH, SFTP не предоставляет возможности выполнять команду cat или аналогичные команды для отображения содержимого файлов.

Чтение файла во время сессии SFTP

Хотя SFTP не поддерживает команду cat, вы можете использовать встроенную возможность SFTP для выполнения локальных команд через префикс !. Вот как это можно сделать:

  1. Изменение локальной директории: Перед тем как загружать файл, желательно установить локальную директорию с помощью команды lcd (local change directory), чтобы избежать перезаписи файлов в вашей текущей папке (если это для вас актуально).

  2. Команды SFTP:

    sftp> lcd /tmp
    sftp> get имя_файла  # Скачиваем файл в директорию /tmp
    sftp> !cat имя_файла  # Читаем файл с помощью локальной команды cat

Пояснение шагов

  • lcd /tmp: Эта команда изменяет вашу текущую локальную директорию на /tmp. Это полезно, чтобы файл, который вы загружаете, не перезаписывал существующий или не создавал конфликт в вашей рабочей директории.

  • get имя_файла: Эта команда скачивает файл с удалённого сервера в /tmp на вашем локальном компьютере.

  • !cat имя_файла: Этот вызов позволяет использовать команду cat для отображения содержимого файла, который вы только что загрузили. Знак ! указывает на то, что команда будет выполнена локально, а не на удалённом сервере.

Заключение

Таким образом, вы можете легко просмотреть содержимое файла, оставаясь в рамках одной сессии SFTP, используя комбинацию команд. Это экономит время и делает процесс работы с удалёнными файлами более эффективным. Вы можете использовать lcd для изменений в локальной директории и ! для выполнения локальных команд, таких как cat.

Эти простые шаги сделают вашу работу с SFTP более удобной, избегая лишних действий и переходов между различными сессиями.

Оцените материал
Добавить комментарий

Капча загружается...