linux - 如何删除一个目录下所有文件的内容

标签 linux bash solaris cp

/tmp/REPORTS下我有一百个文件。我想要做的是删除 /tmp/REPORTS 中每个文件的内容(而不是删除它们)。所以我尝试了以下操作,但收到此错误:

cp /dev/null /tmp/REPORTS/*

cp: Target /tmp/REPORTS/…..  must be a directory
Usage: cp [-f] [-i] [-p] [-@] f1 f2
      cp [-f] [-i] [-p] [-@] f1 ... fn d1
      cp -r|-R [-H|-L|-P] [-f] [-i] [-p] [-@] d1 ... dn-1 dn

如何清除目录下所有文件的内容?

最佳答案

假设您想要截断每个文件的内容,您可以这样做:

for file in /tmp/REPORTS/*; do > "$file"; done

这将清除目录中每个文件的内容。

gniourf_gniourf在上面的评论中建议,有一个 GNU 工具 truncate 也可以为您完成这项工作:

truncate --size 0 /tmp/REPORTS/*

这可能比手动循环文件更快。

关于linux - 如何删除一个目录下所有文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29238694/

相关文章:

c++ - 如何在 gnu/linux 上安装 boost

windows - 在 Windows bash 中访问根目录

bash - 检查参数是否为路径

node.js - TCP 服务器 : Drop Connection, 而不是重置或响应?

linux - 在 Linux 中,如何将输入流压缩为多个输出文件?

linux - 在命令行 (Ubuntu) 上运行 Ipython notebook 时出错

c++ - 将旧的 C++ 代码从 Solaris 移植到 Linux

linux - Ada POSIX 绑定(bind)和多套 IPC 的 POSIX 接口(interface)

linux - 从 Google Compute Engine 连接到 FTP 服务器时,获取 "I won' t open a connection to”

bash - 如何将 curl 的输出捕获到 bash 中的变量