分页: 1 / 1

这个命令怎么不起作用

发表于 : 2015-01-14 15:42
noble_out

代码: 全选

find ./ -name "access.log"  -exec cat /dev/null > {} \;
上面的命令不起作用,但是下面的起作用, :em20

代码: 全选

find ./ -name "access.log"  -exec rm -f {} \;
这是什么情况?

Re: 这个命令怎么不起作用

发表于 : 2015-01-14 16:41
lainme

Re: 这个命令怎么不起作用

发表于 : 2015-01-14 16:56
noble_out

Re: 这个命令怎么不起作用

发表于 : 2015-01-14 17:07
susbarbatus
noble_out 写了:

代码: 全选

find ./ -name "access.log"  -exec cat /dev/null > {} \;
上面的命令不起作用,但是下面的起作用, :em20

代码: 全选

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 {} \;

Re: 这个命令怎么不起作用

发表于 : 2015-01-26 17:00
noble_out
susbarbatus 写了: 命令里面带重定向,shell 的解释会出问题,似乎是被理解成 find 本身的重定向了,非要用的话,可以用起个子 shell 来绕过这个问题。

代码: 全选

find  ./ -name "access.log" -exec bash -c "cat /dev/null > {}" \;
看你的命令,似乎只是想清空文件而已,那么也可以

代码: 全选

find ./ -name "access.log"  -exec truncate --size 0 {} \;
:em38