如何避免由于套接字文件导致的linux移动错误?
我有一个如何避免由于套接字文件导致的linux移动错误?,linux,bash,mv,Linux,Bash,Mv,我有一个mv文件夹行,显示了一条令人困惑的消息,因为该文件夹中有一个套接字文件 是否有办法更改它,使其不会显示此错误。我并不真正关心这个套接字文件,因为它的寿命是短暂的,我只需要确保我将文件夹移动(归档)到另一个安全的位置 mv /tmp/env-DkKZrr3 /home/user/some-path/ mv: cannot stat ‘/tmp/ir-venv-DkKZrr3/10.0.0.101-cloud-user’: No such file or directory 我知道我可以重
mv文件夹
行,显示了一条令人困惑的消息,因为该文件夹中有一个套接字文件
是否有办法更改它,使其不会显示此错误。我并不真正关心这个套接字文件,因为它的寿命是短暂的,我只需要确保我将文件夹移动(归档)到另一个安全的位置
mv /tmp/env-DkKZrr3 /home/user/some-path/
mv: cannot stat ‘/tmp/ir-venv-DkKZrr3/10.0.0.101-cloud-user’: No such file or directory
我知道我可以重定向stderr,但我更愿意只避免或忽略这些特定类型的错误,而不是其他错误。好吧,您不能只“忽略”某种类型的错误消息。根据您的要求,我认为这可能是一种更好的方法,在您mv
之前检查文件类型。您可以通过以下方式检查文件是否为套接字:
[ -S <yourFilePath> ]
[-S]
将此检查添加到脚本中,如果结果为True
,则跳过移动文件。我想应该没问题
Grep
我不建议使用这里的技巧,因为如果你移动一个不存在的文件,错误消息看起来是一样的,你无法区分它是一个不存在的错误还是一个套接字文件错误。即使你收到这个警告,其他文件也被移动了,对吗?@Aserre yes,这只是一个警告,但在CI日志中会引起混淆,我想避免它。如果您只想支持来自mv
的所有错误,可以重定向stderr的输出:mv/tmp/env-DkKZrr3/home/user/some path/2>/dev/null
。但是,这将清除mv
中的所有错误,包括权限错误。grep-v
on STDERR?Stack Overflow是一个用于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。