我想清空目录中的所有文件。我试过这个:
find myFolderPath/* -exec cat /dev/null > {} ';'
但它不起作用。我该怎么办?
答案 0 :(得分:29)
您不能直接在>
中使用重定向(find -exec
),因为它在命令运行之前发生并创建一个名为{}
的文件。要解决此问题,您需要使用sh -c
在新shell中执行此操作。
另请注意,您无需cat /dev/null > file
即可破坏文件。您只需使用> file
。
试试这个:
find . -type f -exec sh -c '>"{}"' \;
答案 1 :(得分:9)
这将做你想要的:
for f in *; do >$f; done