gpt4 book ai didi

清理linux目录下的文件

转载 作者:太空狗 更新时间:2023-10-29 11:24:56 25 4
gpt4 key购买 nike

我想在 Linux 上清除目录中的所有文件(不是删除它们,只清除它们的内容)

我需要用 C 来做。

最佳答案

实际上,您确实不需要在 C 中执行此操作。UNIX 包含的工具几乎可以执行您想要的任何任务。

find . -type f -exec cp /dev/null {} ';'

上面的特定代码片段将找到当前目录下的所有文件并尝试将空设备复制到它,有效地将文件截断为 0 字节。

您可以更改起始(顶级)目录,限制名称(例如使用 -name '*.jpg'),甚至可以使用 将其限制在当前目录(无子目录) >-最大深度 0

许多 find 的其他选项,您可以通过在命令行 shell 中输入 man find 来发现这些选项。只是不要将它输入 Google,你可能会得到比你预想的更多:-)


如果使用 C 的需要是绝对没有商量余地的,我会仍然这样做,但是:

system ("find . -type f -exec cp /dev/null {} ';'");

我不热衷于重写已经有人付出大量努力免费提供的软件:-)


如果在我的建议之后,您仍然想以艰难的方式去做,您需要查看opendir , readdirclosedir用于处理目录,则只需使用 fopen在写入模式后跟 fclose在每个候选文件上。

如果你想导航整个目录结构而不仅仅是当前目录,你必须从 readdir 中检测目录并可能递归遍历它们。

关于清理linux目录下的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3493449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com