首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复windows终端中的“查找”命令

如何修复windows终端中的“查找”命令
EN

Stack Overflow用户
提问于 2019-04-26 09:11:40
回答 2查看 66关注 0票数 0

我编写了一个Nodejs脚本,它查找最后更改/修改的文件名。

因此,我使用find CLI命令。我有一个隐藏文件.change来比较其他文件和那个文件(修改的时间)。

下面是一个代码:

代码语言:javascript
复制
const es6dir = 'es6';
const path2dir = './htdocs/';

const exec = require("child_process").exec;

exec(`find ${path2dir + es6dir}/ -type f -newer .change`, (error, stdout) => {
    if(error){
        console.log(`Error: ${error}`);

        return;
    }

    console.log(stdout);

    //update .change modified timestamp
    exec('touch -c .change');

}

如果我在Git中运行这个命令,一切都很好,但是如果我使用windows终端,则会显示一个不正确的命令。

有一种简单的方法可以同时适用于Linux和Windows终端吗?

我想在这两个平台上运行这个命令,因为一些团队成员正在Linux上工作,而其他人则在使用windows机器。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-26 09:33:04

交叉兼容性可以通过子进程或使用fs.statfs.writeFile来实现。

Stats返回这样的对象:

代码语言:javascript
复制
Stats {
  dev: 16777220,
  mode: 33188,
  nlink: 1,
  uid: 501,
  gid: 20,
  rdev: 0,
  blksize: 4096,
  ino: 5077219,
  size: 11,
  blocks: 8,
  atimeMs: 1556271390822.264,
  mtimeMs: 1556271389892.5886,
  ctimeMs: 1556271389892.5886,
  birthtimeMs: 1556270439285.706,
  atime: 2019-04-26T09:36:30.822Z,
  mtime: 2019-04-26T09:36:29.893Z,
  ctime: 2019-04-26T09:36:29.893Z,
  birthtime: 2019-04-26T09:20:39.286Z }

正如评论和答复所建议的那样,我同意这将是一个更好的办法。下面是如何创建新文件和检查创建日期的方法。

代码语言:javascript
复制
const fs = require('fs');
// Directory
const PATH = './';
// Get file's stats
fs.stat(`./.change`, function(error, stats) {
  if (error) { throw error; } // Throw if an error, file not found
  let time = Date.now(); // Current Time
  console.log(`Current .change: Created: `, stats['mtime']); // Created Time 
  // If current time > file creation time
  if (time > stats['mtime']) {
    // writeFile function with filename, content and callback function
    fs.writeFile(`${PATH}/.change`, 'Inside File', function (error) {
      if (error) { throw error; }
        console.log('File is updated successfully.');
    });
  }
});
票数 1
EN

Stack Overflow用户

发布于 2019-04-26 09:23:44

考虑在特定于平台的命令或实用程序上使用Node的内置fs.Stats。公开fs方法的fs.stat模块返回属性mtime,该属性包含上次修改的时间(毫秒)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55864346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档