如何在不更改所有权/权限的情况下清除子目录中每个文件的内容?

Dav*_*gac 4 linux bash find pipe

我可以使用以下内容找到文件列表:

find /path/to/files -type f

我可以使用以下任一方法清除单个文件的内容:

> filename

echo -n > filename

cat /dev/null > filename

您可以使用不涉及输出重定向的命令执行类似操作:

find /path/to/files -type f -exec file '{}' \;

但是,这不起作用:

find /path/to/files -type f -exec echo -n > '{}' \;

我似乎无法使用 find 构造命令-exec| xargs将文件列表通过管道传输到这些将清除文件的命令之一。我怎样才能做到这一点?

Gor*_*son 5

只是为了好玩,这是另一种选择:

find /path/to/files -type f -exec dd if=/dev/null of={} \;
Run Code Online (Sandbox Code Playgroud)