我编写了一个Nodejs脚本,该脚本查找上次更改/修改的文件名。
因此,我正在使用expected
CLI命令。我有一个隐藏文件 .change 可以将其他文件与该文件进行比较(修改时间)。
这是下面的代码:
find
如果我在 Git Bash 中运行此命令,一切都可以正常工作,但是如果我使用Windows终端,则表示命令不正确。
有没有一种简单的方法可以同时在Linux和Windows终端上使用?
我想在两个平台上都运行此命令,因为一些团队成员正在Linux上工作,而其他团队成员正在使用Windows计算机。
答案 0 :(得分:2)
答案 1 :(得分:1)
可以通过子进程或使用fs.stat
和fs.writeFile
来实现交叉兼容性。
统计信息返回这样的对象:
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 }
正如评论和答案中所建议,我同意这将是一种更好的方法。这是您创建新文件并检查创建日期的方法。
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.');
});
}
});