stat : 显示文件或文件系统状态(path)
fs.stat(path, callback)
//Asynchronous stat
fs.stat('/path/demo1.txt', function (err, stats) {
if (err) {
throw err;
}
console.log(stats);
});
回调中有两个参数
(err, stats)
,stats
是一个fs.stats
对象。
fs.statSync(path)
//Synchronous stat
var stats = fs.statSync('/home/yofine/example/demo1.txt');
console.log(stats);
log :
{ dev: 64770,
mode: 33206,
nlink: 1,
uid: 1000,
gid: 1000,
rdev: 0,
blksize: 4096,
ino: 12845544,
size: 5,
blocks: 8,
atime: Tue Dec 24 2013 00:46:47 GMT+0800 (CST),
mtime: Tue Dec 24 2013 00:07:43 GMT+0800 (CST),
ctime: Thu Dec 26 2013 13:04:53 GMT+0800 (CST) }
fstat : 显示文件或文件系统状态(fd)
fs.fstat(fd, callback)
//Asynchronous stat
fs.open('/path/demo1.txt', 'a', function (err, fd) {
if (err) {
throw err;
}
fs.fstat(fd, function (err, stats) {
if (err) {
throw err;
}
console.log(stats);
fs.close(fd, function () {
console.log('Done');
});
});
});
fs.fstatSync(fd)
//Synchronous stat
var fd = fs.openSync('/path/demo1.txt', 'a');
var stats = fs.fstatSync(fd);
console.log(stats);
fs.closeSync(fd);
console.log('Done');
lstat : 显示文件或文件系统状态(符号链接)
fs.lstat(path, callback)
//Asynchronous lstat
fs.lstat('/path/demo1.txt', function (err, stats) {
if (err) {
throw err;
}
console.log(stats);
});
fs.lstatSync(path)
//Synchronous lstat
var stats = fs.lstatSync('/path/demo1.txt');
console.log(stats);
fs.lstat 和 fs.stat 的区别 :
当
path
为实际路径时,两者查看的文件或文件系统状态是一样的,但是当path
为符号链接路径时,fs.stat
查看的是符号链接所指向实际路径的文件或文件系统状态,而fs.lstat
查看的是符号链接路径的文件或文件系统状态 。
link : 硬链接
fs.link(srcpath, dstpath, callback)
//Asynchronous link
fs.link('/path/demo1.txt', '/path/demo1_h', function (err) {
if (err) {
throw err;
}
console.log('hardlink complete');
});
fs.linkSync(srcpath, dstpath)
//Synchronous link
fs.linkSync('/path/demo1.txt', '/path/demo1_h');
硬链接 :
由于linux下的文件是通过索引节点(Inode)来识别文件,硬链接可以认为是一个指针,指向文件索引节点的指针,系统并不为它重新分配inode。每添加一个一个硬链接,文件的链接数就加1。硬链接相当于备份。
symlink : 符号链接
fs.symlink(srcpath, dstpath, [type], callback)
//Asynchronous symlink
fs.symlink('/path/demo1.txt', '/path/demo1_s', function (err) {
if (err) {
throw err;
}
console.log('symlink complete');
});
fs.symlinkSync(srcpath, dstpath, [type])
//Synchronous symlink
fs.symlinkSync('/path/demo1.txt', '/path/demo1_s');
符号链接 :
符号链接一类特殊的文件,相当于一个快捷方式,与硬链接不同,它是新建的一个文件,而且当
ls -al
时会标明是链接。
readlink : 读取链接源地址
fs.readlink(path, callback)
//Asynchronous readlink
fs.readlink('/path/demo1_s', function (err, linkString) {
if (err) {
throw err;
}
console.log(linkString);
});
fs.readlinkSync(path)
//Synchronous readlink
var linkString = fs.readlinkSync('/path/demo1_s');
console.log(linkString);
以上两个的参数
path
要为 符号链接。