yae*_*ael 0 linux bash rhel shell-script mv
在我们的 RHEL 7.6 服务器上,我们创建以下文件夹
# mkdir -p /var/data/data-logs_temp
Run Code Online (Sandbox Code Playgroud)
第二部分是将所有内容移动 /var/data/到/var/data/data-logs_temp:
# mv /var/data/* /var/data/data-logs_temp
Run Code Online (Sandbox Code Playgroud)
但是我们从mv命令中得到的输出是:
mv: cannot move ‘/var/data/data-logs_temp’ to a sub directory of itself, ‘/var/data/data-logs_temp/data-logs_temp’
Run Code Online (Sandbox Code Playgroud)
该mv命令是正确的。
但; 是否可以mv忽略这一点,因为我们需要mv命令中的退出代码0?
或者可能有任何其他选项忽略移动自身的子目录?
您可以使用 bash 的“扩展 glob”语法从要移动的文件列表中排除 data-logs_temp 子目录:
shopt -s extglob
mv /var/data/!(data-logs_temp) /var/data/data-logs_temp
Run Code Online (Sandbox Code Playgroud)
有关扩展的 glob 的更多信息,请参阅Greg 的 wiki和此问题。