我正在尝试从文件中删除包列表。我正在使用以下命令:
cat packages | xargs sudo apt-get remove
Run Code Online (Sandbox Code Playgroud)
packages
是包含我要删除的软件包列表的文件。一切似乎都有效,但apt-get
中止而不是让我选择是或否。
我知道我可以通过-y
选项解决这个问题,但我想知道为什么会发生这种情况以及我如何保持交互式选择。
eph*_*ent 13
xargs -a packages sudo apt-get remove
Run Code Online (Sandbox Code Playgroud)
将直接xargs
从 读取参数packages
,因此它将使 stdin 不受干扰。
msw*_*msw 10
更通用的解决方案是
sudo apt-get remove `cat packages`
Run Code Online (Sandbox Code Playgroud)
它不起作用的原因是 apt-get 试图从标准输入中读取您的确认 - 因为管道 - 附加到cat
. 相反,sudo
通过直接打开 /dev/tty 询问您的密码来做正确的事情。Apt 应该这样做,但显然没有。
归档时间: |
|
查看次数: |
3809 次 |
最近记录: |