小编hou*_*ack的帖子

为什么我不能通过远程 SSH 会话运行 Gnome 应用程序?

使用 登录到远程主机ssh -X me@host,我成功运行了gnome-terminal -e "tail -F /var/log/file" &. 当我注销然后第二天尝试同样的事情时,我得到了这个:

无法获取会话总线:无法连接到套接字 /tmp/dbus-K99gT9yDjS:连接被拒绝 回退到非工厂模式。召唤GConf恶魔失败;退出。联系配置服务器失败;一些可能的原因是您需要为 ORBit 启用 TCP/IP 网络,或者由于系统崩溃而使 NFS 锁失效。有关信息,请参阅http://projects.gnome.org/gconf/。(详细信息 - 1:无法连接到会话:无法连接到套接字 /tmp/dbus-K99gT9yDjS:连接被拒绝)

在这种情况下如何运行 gnome-terminal?

ssh gnome d-bus

10
推荐指数
3
解决办法
3万
查看次数

如何解码 base64 编码的文件名列表?

我有一个 base64 编码的文件名列表,格式为{base64-encoded part here}_2015-11-12.pdf. 我正在尝试解码该文件列表并将其作为另一个列表在命令行上返回,以换行符分隔。这是我现在正在尝试的:

find . -name "*_*" -printf "%f\0" | sed 's/_....-..-..\.pdf//g' | xargs -0 -i echo "{}" | base64 -d
Run Code Online (Sandbox Code Playgroud)

我想我在这里做的是。. .

  1. 查找文件,仅打印出由空字符分隔的文件名(即去掉“./”前缀)
  2. 使用 sed 仅保留 base64 编码的部分(即,删除_2015-11-12.pdf文件名的一部分)
  3. 使用 xargs 表面上将每个文件名传递给 echo
  4. 然后解码 echo 返回的值。

其结果显然是所有 base64 解码文件名的大字符串,每个名称由一个空字符分隔,整个字符串后跟一个换行符。该期望的结果将是对自身一行每个单独的解码文件名。

我尝试了各种技巧来尝试解决这个问题,但我还没有找到任何有效的方法。我试过... | base64 -d | echo,... | base64 -d && echo等,试图在沿途的各个点插入换行符。似乎到值结束时| base64 -d,它们都作为单个字符串同时处理。我试图找到一种方法将每个值base64 -d一次发送给一个,而不是作为文件名的整体列表。

bash xargs echo base64

5
推荐指数
1
解决办法
5865
查看次数

标签 统计

base64 ×1

bash ×1

d-bus ×1

echo ×1

gnome ×1

ssh ×1

xargs ×1