【发布时间】:2013-01-11 22:59:03
【问题描述】:
我想清空目录中的所有文件。我试过这个:
find myFolderPath/* -exec cat /dev/null > {} ';'
但它不起作用。我该怎么做?
【问题讨论】:
我想清空目录中的所有文件。我试过这个:
find myFolderPath/* -exec cat /dev/null > {} ';'
但它不起作用。我该怎么做?
【问题讨论】:
您不能直接在 find -exec 中使用重定向 (>),因为它发生在命令运行并创建名为 {} 的文件之前。要解决这个问题,您需要在新的 shell 中使用 sh -c。
另外,请注意,您不需要 cat /dev/null > file 来破坏文件。你可以简单地使用> file。
试试这个:
find . -type f -exec sh -c '>"{}"' \;
【讨论】:
find . -type f -exec sh -c '>"$1"' shell {} \;,以防止文件名中的特殊字符作为脚本的一部分执行
这会做你想做的事:
for f in *; do >$f; done
【讨论】:
sudo 运行这个?