我正在尝试使用以下命令将所有较新的 jpg 从一个文件夹复制到另一个文件夹
cp -u --force /home/oldfolder/*.jpg /home/newfolder/
Run Code Online (Sandbox Code Playgroud)
我得到以下提示:
cp: overwrite `/home/newfolder/4095-181.jpg'?
Run Code Online (Sandbox Code Playgroud)
我知道的“-u”工作正常,因为它只提示我使用较新的文件,但我不想得到提示,我只是想让它覆盖它们。我试过 --force 和 -f
有什么建议?
提前致谢
当我打开终端(在 Mac OS X 10.5.8 上)并输入一个长命令行时:

...文本在环绕时不会转到下一行:

此外,有时当我键入命令然后退格(或向上箭头或 ^U)时:

...整行没有被删除,我不能退格超过某个点:

这是一个已知的 bash 错误(在 Mac OS X 上)吗?有解决办法吗?
更新: Juliano是正确的,问题是由于在我的 PS1 变量中错误地分隔控制台代码序列引起的。改变:
export PS1='\[\033[1;34m\]\$\]\033[0m\] '
Run Code Online (Sandbox Code Playgroud)
...在我.bashrc的:
export PS1='\[\033[1;34m\]\$\[\033[0m\] '
Run Code Online (Sandbox Code Playgroud)
...解决了问题。
我想使用 getopts 将一些参数解析为 bash 脚本,但希望能够访问选项列表中未包含的其余参数。例如,如果我有一个电话:
% script -a -b param -c param -d other arguments here
Run Code Online (Sandbox Code Playgroud)
我会:
while getopts "ab:c:d" opt ; do
.
done
Run Code Online (Sandbox Code Playgroud)
获取“此处的其他参数”的最简单方法是什么,getopts 不应处理这些参数?
我有这个shell命令:
kill `cat -- $PIDFILE`
Run Code Online (Sandbox Code Playgroud)
什么双 - 在这里?为什么不只使用
kill `cat $PIDFILE`
Run Code Online (Sandbox Code Playgroud) 我想从中获取数字rating作为输出
# nc localhost 9571
language:
language:en_ZA.UTF-8
language:en_ZW.UTF-8
session-with-name:Ubuntu Classic (No effects):gnome-session --session=2d-gnome
session-with-name:Ubuntu (Safe Mode):gnome-session -f --session=2d-gnome
session-with-name:Ubuntu Classic:gnome-session --session=classic-gnome
xsession:/etc/X11/Xsession
rating:94
Run Code Online (Sandbox Code Playgroud)
我可以这样做
# nc localhost 9571 | grep rating | cut -d: -f2
94
Run Code Online (Sandbox Code Playgroud)
但可以awk用来代替更简单的解决方案吗?
我正在尝试编写一个脚本,该脚本将从 apt 输出可升级包的数量。然而,它也不断给我这个警告:
# sudo apt update | grep packages | cut -d '.' -f 1
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
All packages are up to date
Run Code Online (Sandbox Code Playgroud)
我希望它只输出:
All packages are up to date
Run Code Online (Sandbox Code Playgroud)
或者
35 packages can be updated
Run Code Online (Sandbox Code Playgroud)
有什么办法可以禁用该警告吗?我将在来自 cron 作业的 Discord 通知中使用这个返回的字符串以及一些额外的信息,它非常糟糕地搞乱了我的输出。
我已经看过这些,但没有一个对我有用:
https://unix.stackexchange.com/questions/19470/list-available-updates-but-do-not-install-them
https://askubuntu.com/questions/269606/apt-get-count-the-number-of-updates-available
我正在创建一个 bash 脚本来配置一个新服务器,我可以将一个 Web 应用程序部署到该服务器。我总是必须做的一件事是将 GitHub 视为使用ssh git@github.com. 如何在 bash 脚本中自动执行此过程,并以幂等方式执行此操作?
我一直在测试最小的 Fedora 安装。要检查 python 或 node 等解释器的路径,我通常使用which.
我注意到which默认情况下未安装。我可以添加这个包,但我想知道是否有一个内置的 shell 可以用来执行这个常见的任务。
我正在使用 bash 4.2。
昨天和今天(2014 年 9 月 24 日)广泛报道了通过 Bash 执行远程代码的机制。http://seclists.org/oss-sec/2014/q3/650报告为 CVE-2014-7169 或 CVE-2014 -6271
出于对我来说太愚蠢无法公开解释的原因,我负责运行 RHEL 4 且没有更新订阅的服务器。我可以建立一个克隆来测试这个,但我希望有人能有一个直接的答案。
有没有一种简单的方法可以列出新安装的 RPM 包将安装的依赖项列表yum?
示例:如果你这样做,yum install ruby它也会安装一些 rubygems。
但是当我卸载ruby包时,我也想摆脱它安装的依赖项。
所以我的第一个想法是列出这些新软件包,然后rpm -e在卸载ruby.
题
如何以自动方式制作这样的列表?
或者有没有更简单的方法来管理带有 rpm 包名的文本文件?