我使用 Google 的两步验证,因此在授予 gnome-online-accounts 访问我的 Google 帐户的权限时,我还必须输入身份验证代码。这很好,这就是事情应该如何运作。
但是,我的登录名经常会被重置,我需要重新输入所有内容。因此,我尝试创建一个与 gnome-online-accounts 一起使用的应用程序特定密码,但它不会接受它;它告诉我改用我的帐户密码。
任何人都知道为什么会这样,或者——更重要的是——是否有任何方法可以改变它的工作方式,或者在两步验证下使用 gnome-online-accounts 保存我的 Google 凭据?
假设我有一个文件夹,里面有大约 20 个文件(比如我在旅行中拍的照片),我想一次性重命名它们,只是没有我想使用的任何特定的 Perl 表达式(例如,如果我想为每个名称添加额外的文本,这些文本不属于单个文件的元数据,例如描述和/或评论)。
并且假设我可以更轻松地生成一个文本文件,其中包含我希望每个文件的名称(或者,如果需要,可以使用“前后”列表)。
有什么方法可以将该文本列表中隐含的更改应用于相关文件夹?
编辑:请注意,如下所述,我知道此站点上的答案解释apt-get
使用正则表达式来解释包的名称。事实上,问题直接在于它的实际行为与记录的行为不同的方式。请在建议重复之前阅读问题。
该站点上的一些答案警告不要使用apt-get
通配符(即星号: *
),因为apt-get
据说将它们扩展为正则表达式,这可能会产生意外(和不希望的)结果,尤其是apt-get remove
. 事实上,Ubuntuman
页面apt-get
读取:
如果没有包与给定的表达式匹配并且表达式包含“.”、“?”之一 或 '*' 那么它被假定为一个 POSIX 正则表达式,它被应用于数据库中的所有包名称。然后安装(或删除)任何匹配项。请注意,匹配是由子字符串完成的,因此 'lo.*' 匹配 'how-lo' 和 'lowest'。如果这是不希望的,请使用 '^' 或 '$' 字符锚定正则表达式,或者创建更具体的正则表达式。
事实上,这个答案声称:
apt-get 接受正则表达式而不是 glob 模式作为外壳。
我相信这是错误的(至少从 Xenial 开始)。例如,我可以重现以下行为:
$ sudo apt-get install -s 'meld*'
[...]
Note, selecting 'meld' for glob 'meld*'
[...]
$ sudo apt-get install -s 'meldt*'
[...]
Note, selecting 'python-meld3' for regex 'meldt*'
Note, selecting 'python3-meld3' for regex 'meldt*'
Note, selecting …
Run Code Online (Sandbox Code Playgroud) 我想screen
在 LXD 管理的容器内启动一个会话,以便我可以分离正在运行的进程,并且可能在将来我想检查它们的状态时重新附加。
我试图附加到正在运行的容器
$ lxc exec my-ubuntu -- /bin/bash
Run Code Online (Sandbox Code Playgroud)
然后使用 开始会话screen -x
,但出现以下错误:
Must be connected to a terminal.
Run Code Online (Sandbox Code Playgroud)
我可以看到,试图启动时,很多人都有过类似的问题screen
,从ssh
,但我不能应用建议的解决方案,我的情况。
编辑:
这个问题最初关注的是在传输时反转ssh连接方向的问题,但我开始意识到这不是导致我遇到问题的原因,所以我简化了它。
虽然Ubuntu的文档中zfs
只讨论通过文件发送,接收,这种方法不可行大数据集。Oracle 文档建议ssh
在管道中使用,即
# zfs send tank/dana@snap1 | ssh sys2 zfs recv newtank/dana
Run Code Online (Sandbox Code Playgroud)
但是,尝试使用我创建的包含单个 10M 文件的测试数据集执行此过程时,我遇到了 Ubuntu Xenial 实现zfs
(ZFS-on-Linux)需要 root 权限(在接收端)的问题:
$ sudo -i
# zfs send tank/dana@snap1 | ssh sys2 zfs recv newtank/dana
Permission denied the ZFS utilities must be run as root.
warning: cannot send 'tank/dana@snap1': Broken pipe
Run Code Online (Sandbox Code Playgroud)
我试图通过传递来解决这个问题ssh
的-t
标志,即发行
# zfs send tank/dana@snap1 | ssh -t sys2 "sudo zfs recv newtank/dana"
Run Code Online (Sandbox Code Playgroud)
失败了
Pseudo-terminal …
Run Code Online (Sandbox Code Playgroud) 一些教程(例如linuxcontainers.org 上的入门)建议在用于在 LXD 容器内运行程序--
时使用双连字符 ( ) lxc exec
,如
$ lxc exec my-container -- apt update
Run Code Online (Sandbox Code Playgroud)
我怀疑--
告诉lxc exec
将提供的标志传递给程序,因为例如lxc exec my-container apt list --upgradable
失败
error: flag provided but not defined: --upgradable
Run Code Online (Sandbox Code Playgroud)
但是,我找不到有关该问题的任何文档。有人可以确认或澄清这是否不完全是它的作用吗?
此外,我看到人们--
在不同地方使用的实例,例如:
$ lxc exec my-container apt -- list --upgradable
$ lxc exec my-container apt list -- --upgradable
Run Code Online (Sandbox Code Playgroud)
有什么不同?
lxc ×2
lxd ×2
16.04 ×1
apt ×1
batch-rename ×1
command-line ×1
gnu-screen ×1
google ×1
login ×1
password ×1
server ×1
ssh ×1
zfs ×1