20

我想清空目录中的所有文件。我试过这个:

find myFolderPath/* -exec cat /dev/null > {} ';'

但它不起作用。我该怎么做?

4

2 回答 2

39

您不能直接在其中使用重定向 ( >),find -exec因为它发生在命令运行并创建名为{}. 要解决这个问题,您需要在新的 shell 中使用sh -c.

另外,请注意,您不需要cat /dev/null > file为了破坏文件。您可以简单地使用> file.

试试这个:

find . -type f -exec sh -c '>"{}"' \;
于 2013-01-28T15:12:56.930 回答
13

这将做你想要的:

for f in *; do >$f; done
于 2013-01-28T15:13:04.177 回答