我正在使用以下命令删除"其他"的写访问权限。用户:
df --local -P | awk {'if (NR!=1) print $6'} | xargs -I '{}' find '{}' -xdev -type f -perm -0002 | awk -F"/" {'if ($5!="tmp") print $0'} | xargs chmod o-w
我需要从控制台中抑制所有错误和输出消息。然而,我仍然收到这些消息:
find: /data0101/track_logs/IMEI_TRACK_9_20141127_01010014.LOG: No such file or directory
find: /data0101/track_logs/IMEI_TRACK_4_20141123_01010014.LOG: No such file or directory
find: /data0101/track_logs/IMEI_TRACK_7_20141122_01010014.LOG: No such file or directory
我在命令的最后尝试了所有这样的组合:
&> /dev/null
>/dev/null 2>&1
2&>1 >/dev/null
但它没有帮助。我的shell是:
# echo $SHELL
/bin/bash
请帮助
答案 0 :(得分:1)
你接近你的答案。由于错误来自find命令,因此您需要重定向xargs -I '{}' find '{}' -xdev -type f -perm -0002
命令的错误。
所以它会是:
xargs -I '{}' find '{}' -xdev -type f -perm -0002 2>/dev/null
另外,正如@HuStmpHrrr所述,要重定向整个长命令的错误消息,请使用{long_command;} 2>/dev/null