Linux可以清空目录中所有文件的内容

Mar*_*ace 8 linux

是否可以在单个命令(无循环)中清除目录中每个文件的内容?

nne*_*neo 13

这很丑陋,但它有效:

find . -type f -exec sh -c 'echo -n "" > $1' sh {} \;
Run Code Online (Sandbox Code Playgroud)

这将清除每个子目录中的每个文件.

要清除当前目录中的文件:

for i in *; do cat /dev/null > $i; done
Run Code Online (Sandbox Code Playgroud)

(是的,这是一个循环,但它是一行.)

  • `echo -n""`是不必要的; `'> 1美元'会做. (2认同)

per*_*eal 7

使用截断:

truncate -s 0 directory/* &> /dev/null
Run Code Online (Sandbox Code Playgroud)