【问题标题】:Nodejs child process for deleting 6 hours older files on a directory用于删除目录上 6 小时旧文件的 Nodejs 子进程
【发布时间】:2016-10-18 06:57:25
【问题描述】:

我正在使用 NodeJs 子进程来删除目录中 6 小时前的所有文件。我已经完成了:删除目录上的所有文件而不删除目录。但是可以做那些文件比 6 小时大的人。

我的代码:

var exec = require('child_process').exec;
var path = '../tmp/uploads';

exec('rm '+ path+"/*", function(err,stdout,stderr){     
  if(err)
     console.log('Directory Empty', err);
  else
     console.log("Files Deleted");
});

所以我需要帮助删除那些超过 6 小时的文件

【问题讨论】:

    标签: node.js process exec child-process spawn


    【解决方案1】:

    如果您想使用 exec 和 linux 命令执行此操作,您可以使用

    find /path/to/files* -mmin +360 -exec rm {} \;
    
    exec('find /path/to/files* -mmin +360 -exec rm {} \;', function(err,stdout,stderr){     
     if(err)
     console.log('Directory Empty', err);
     else
     console.log("Files Deleted");
    });
    

    否则你可以使用文件系统包 https://nodejs.org/api/fs.html#fs_class_fs_stats

    【讨论】:

      【解决方案2】:

      使用 fs 包: https://nodejs.org/api/fs.html#fs_class_fs_stats

      您应该能够从中获取文件年龄

      您也可以使用 fact 包来删除文件,而不是使用 child_process。

      这里是如何使用 exec 和 shell 命令执行此操作的链接: Shellscript - check a folder and delete files within that folder older than an hour

      【讨论】:

      • 所以这不是您正在寻找的 Nodejs 功能,而是 shell 脚本
      • 我已经更改了我的答案,并附上了指向此处另一个问题的链接,其中的答案解释了如何使用 shell 命令进行操作
      • 如果您使用像 'rm' 这样的 shell 命令,您必须使用 shell 提供的内容来了解​​文件的年龄。也许创建一个从 Node.js 调用的 shell 脚本。但话虽如此——那你为什么还要使用 Node.js?
      猜你喜欢
      • 1970-01-01
      • 2018-03-19
      • 1970-01-01
      • 2016-12-27
      • 2013-06-11
      • 2023-01-07
      • 2019-03-19
      • 1970-01-01
      • 2021-08-22
      相关资源
      最近更新 更多