我正在运行以下命令:
mv logs/*.log logs/bak/
现在,当我的日志文件夹包含与*.log
匹配的文件时,它可以正常工作。
但是,如果没有匹配的文件,它将引发错误
mv: cannot stat 'logs/*.log': No such file or directory
我该如何进行这项工作?
编辑我正在尝试使用零状态代码退出此出口,而不执行任何操作,以便可以在构建过程中使用此出口]
使用find
代替mv
:
例如:
find logs -maxdepth 1 -type f -exec mv '{}' logs/bak \;
...,并且在尝试使用此命令时,请在命令前加上echo
和/或使用详细信息:
find logs -maxdepth 1 -type f -exec echo mv '{}' logs/bak \;
find logs -maxdepth 1 -type f -exec mv -v '{}' logs/bak \;
注意选项:
-maxdepth 1
:防止递归到子目录中
[-type f
:仅考虑常规文件
仅匹配以.log
结尾的文件,您可以添加选项:
-name *.log
编辑OP
所以,最后的命令显示为:
find logs -maxdepth 1 -type f -name \*.log -exec mv -v '{}' logs/bak \;