Nautilus использует gvfs
для подключения удаленных хранилищ, таких как SFTP-сервер в вашем вопросе. Это позволяет вам обращаться с удаленным сервером так, как если бы он был частью вашей локальной файловой системы. Путь, по которому он монтируется, обычно
/run/user/<your uid>/gvfs/<server specification>/<path>
Я совершенно уверен, что префикс всегда
/run/user/<your uid>
, так что вы можете найти эту точку монтирования с помощью ls
или вкладки-в этом каталоге.
Как только вы нашли эту точку монтирования, вы можете использовать tee
как обычно (с добавлением разрывов строки -для ясности):
tar --exclude='./somefolder' -zc. \
| tee "/run/user/1000/gvfs/sftp:host=mydomain.ending/storage/location/on/server/sth.tar" \
| sha256sum
В качестве альтернативы вы можете избежать монтирования GVFS и по-прежнему избежать замены переносимого процесса -, используя SSH вместо SFTP:
tar --exclude='./somefolder' -zc. \
| ssh mydomain.ending 'tee "/storage/location/on/server/sth.tar"' 2>/dev/null \
| sha256sum
К сожалению, sftp
программа не позволяет отправлять файлы на удаленный хост с помощью одной командной строки, а только извлекать их.
Как указывает @rudimeier, описанный выше метод ssh
загружает и загружает файл, чтобы избежать его локального хранения.Если вы не хотите -повторно загружать его, может быть лучше сделать это sha256sum
удаленно:
tar --exclude='./somefolder' -zc. \
| ssh mydomain.ending 'tee "/storage/location/on/server/sth.tar" | sha256sum' 2>/dev/null
Ты был близок:
printf 'print("hello world")\n exit\n' | ipython
И вам даже не нужно exit
, так как ipython
автоматически завершает работу после чтения команд из стандартного ввода, так что вы могли бы сделать:
echo 'print("hello world")' | ipython