linux命令的输出没有从控制台中被抑制

时间:2015-06-27 17:30:09

标签: linux bash shell

我正在使用以下命令删除"其他"的写访问权限。用户:

    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

请帮助

1 个答案:

答案 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