Bash-скрипт sftp загружает файлы только в тот же каталог, что и скрипт

Это довольно странный вопрос, потому что вы не запускаете ядро ​​так же, как запускаете программу.Ядро — это платформа для запуска программ. Конечно, есть код установки и завершения работы, но запустить ядро ​​самостоятельно невозможно. Всегда должен быть основной процесс "init". И ядро ​​будет паниковать, если его там нет. Если init попытается завершить работу, ядро ​​также запаникует.

В наши дни процесс инициализации похож на systemd. Если не указано иное, ядро ​​попытается запустить программу из списка местоположений, начинающихся с /sbin/init. См. параметр инициализации здесь http://man7.org/linux/man-pages/man7/bootparam.7.html. В экстренной ситуации вы можете загрузить Linux с init=/bin/bash. Но обратите внимание, как вы всегда указываете файл в файловой системе для запуска.

Таким образом, ядро ​​будет паниковать, если запустится без файловой системы, потому что без нее невозможно загрузить init.

Некоторая путаница может возникнуть из-за фазы инициализации ядра. Начальный виртуальный диск загружается из образа на диске, содержащего жизненно важные драйверы и сценарии установки. Они выполняются до загрузки файловой системы. Но не заблуждайтесь, исходный виртуальный диск сам по себе является файловой системой. На начальном виртуальном диске /initвызывается (, который хранится на начальном виртуальном диске ). Во многих дистрибутивах именно это вызывает /sbin/init. Опять же без файловой системы это невозможно.

0
09.07.2020, 09:23
1 ответ

Добавьте lcd path/you/want/to/save/toперед строкой getвашего sftp-скрипта.

 ❯ sftp localhost
Connected to localhost.
# can't get sampleFile.csv because lpwd isn't what I think
sftp> get sampleFile.csv path/to/directory
File "/home/ryan/sampleFile.csv" not found.
sftp> lpwd
Local working directory: /home/ryan
# this will grab the file I want, but save it into `lpwd` again
sftp> get path/to/directory/sampleFile.csv
Fetching /home/ryan/path/to/directory/sampleFile.csv to sampleFile.csv
# pretend I want to save it locally in /tmp... so: lcd /tmp
sftp> lcd /tmp
sftp> get path/to/directory/sampleFile.csv
Fetching /home/ryan/path/to/directory/sampleFile.csv to sampleFile.csv

1
18.03.2021, 23:21

Теги

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