gpt4 book ai didi

linux - 是否可以使用 scp 创建一个空文件?

转载 作者:太空宇宙 更新时间:2023-11-04 11:58:09 26 4
gpt4 key购买 nike

在 *nix 中,我可以使用 cp 创建一个空文件:

cp /dev/null ~/emptyfile

我想知道是否可以使用 scp(而不是 ssh + touch)做类似的事情。如果我尝试运行:

scp /dev/null remoteserver:~/emptyfile

它返回一个错误/dev/null: not a regular file

编辑:澄清一下,我不想在远程服务器上运行任何命令(即不应调用 ssh 命令)。

因此可以在本地主机上运行一些命令(echo、cat、dd 或任何其他普通命令)并将生成的文件复制到远程服务器。

最好不要将生成的文件留在本地主机上。如果生成的命令是单行解决方案,那也很好。

编辑 2:

不可能像在 cp 命令中那样使用/dev/null 方法,因为 scp 只适用于常规文件和目录: https://github.com/openssh/openssh-portable/blob/8a85f5458d1c802471ca899c97f89946f6666e61/scp.c#L838-L850

因此必须使用另一个命令(touch、cat、dd 等)来创建一个常规的空文件(在先前的命令、管道或子 shell 中)。

最佳答案

作为@willh99 commented ,在本地创建一个空文件,然后执行scp是最可行的方案。

到目前为止,我想到了这个:

filename=$(mktemp) && scp $filename remoteserver:~/emptyfile; rm $filename

它在子 shell 中创建一个空文件,并将其作为 emptyfile 复制到远程服务器。

欢迎任何重构/改进。

编辑:如@Friek 所述,无论 scp 是否成功,都删除 $filename。

关于linux - 是否可以使用 scp 创建一个空文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53522286/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com