我正在寻找一个Linux脚本,它允许在文件超过一定大小时清空文件的内容,例如50 kB。
我试过这个剧本:
#!/bin/bash
find /home/walid/Documents -type f -size +50k -exec echo >"{}" \;
但它不起作用。
另一方面,它适用于删除文件:
#!/bin/bash
find /home/walid/Documents -type f -size +50k -exec rm "{}" \;
答案 0 :(得分:1)
您的重定向(>
)在开始find
之前发生。您现在可能有一个名为{}
的文件。
我建议使用truncate
而不是重定向来覆盖文件:
find /home/walid/Documents -type f -size +50k -exec truncate --size 0 "{}" \;
答案 1 :(得分:0)
尝试一下:
find /home/walid/Documents -type f -size +50k -exec cp /dev/null {} \;
这应该适用于任何*nix like操作系统,但您也可以尝试truncate -s 0 filename
find /home/walid/Documents -type f -size +50k -exec truncate -s 0 {} \;
答案 2 :(得分:0)
对您的第一个脚本进行一些调整应该可以正常工作:
#!/bin/bash
find /home/walid/Documents -type f -size +50k -exec sh -c 'echo -n > {}' \;