noble_out 写了:代码: 全选
find ./ -name "access.log" -exec cat /dev/null > {} \;
上面的命令不起作用,但是下面的起作用,
代码: 全选
find ./ -name "access.log" -exec rm -f {} \;
这是什么情况?
命令里面带重定向,shell 的解释会出问题,似乎是被理解成 find 本身的重定向了,非要用的话,可以用起个子 shell 来绕过这个问题。
代码: 全选
find ./ -name "access.log" -exec bash -c "cat /dev/null > {}" \;
看你的命令,似乎只是想清空文件而已,那么也可以
代码: 全选
find ./ -name "access.log" -exec truncate --size 0 {} \;