如何查找文件并结合“find ... -exec”并将空字符串回显给它?

如何查找文件并结合“find ... -exec”并将空字符串回显给它?

我想要echo清空这样的文件类型,例如:

bash-3.2$ cat t1.txt
aa
bash-3.2$ cat t2.txt
aa
bash-3.2$ cat t3.txt
aa

我尝试通过以下方式使它们清空:

$ find /Users/liweijian/Downloads/tmpfiles -name "*.txt" -exec echo ""
> {} \;

但它不起作用。

答案1

在这种情况下,更容易避免引用麻烦,以使重定向正常工作:

使用truncate -s 0as 命令清空该文件。如果该文件不存在,则很奇怪,因为它应该存在于coreutils常见的发行版中并默认安装。如果确实缺少此包,请尝试安装它。

答案2

您可以输入以下命令:

 $ find /Users/liweijian/Downloads/tmpfiles -name "*.txt" -exec sh -c "echo ''
    > {}" \;

相关内容