Jef*_*ler 19
一般来说,
find /top -type f -exec cp /dev/null {} \;
Run Code Online (Sandbox Code Playgroud)
或(由jordanm 提供):
find /top -type f -exec sh -c '> $1' -- {} \;
Run Code Online (Sandbox Code Playgroud)
在Linux系统(或一个与所述截断命令从GNU coreutils软件包):
find /top -type f -exec truncate -s 0 {} +
Run Code Online (Sandbox Code Playgroud)
与zsh:
for f (**/*(D.)) : > $f
Run Code Online (Sandbox Code Playgroud)
.仅对常规文件执行此操作,D包括隐藏文件和隐藏目录中的文件。
对于少量文件,您可以将其缩短为:>**/*(D.).
保持文件的大小相同,但使它们在没有数据的情况下变得稀疏(因此除了在不支持稀疏文件的 Apple 的 HFS+ 文件系统上之外,不会在磁盘上占据任何位置):
find . -type f -exec perl -e '
for (@ARGV) {
unless (open F, "+<", $_) {warn "open $_: $!"; next}
unless (seek F, 0, 2) {warn "seek $_: $!"; next}
$size = tell F;
unless (truncate F, 0) {warn "zap $_: $!"; next}
unless (truncate F, $size) {warn "fill $_: $!"; next}
}' {} +
Run Code Online (Sandbox Code Playgroud)
请注意,所有这些都会更新文件的上次修改时间。