每天撸个API -- File System (1)

1404 查看

chown : 更改所有权(path)


fs.chown(path, uid, gid, callback)

//Asynchronous chown
fs.chown('/path/demo1.txt', 1001, 1000, function (err) {
  if (err) {
    throw err;
  }
  console.log('chown complete');
});

fs.chownSync(path, uid, gid)

//Synchronous chown
fs.chownSync('/path/demo1.txt', 1000, 1000);

fchown : 更改所有权(fd)


fs.fchown(fd, uid, gid, callback)

//Asynchronous fchown
fs.open('/path/demo1.txt', 'a', function (err, fd) {
  if (err) {
    throw err;
  }
  fs.fchown(fd, 1000, 1000, function (err) {
    if (err) {
      throw err;
    }
    console.log(fd);
    fs.close(fd, function () {
      console.log('Done');
    });
  });
});

fs.fchownSync(fd, uid, gid)

//Synchronous fchown
var fd = fs.openSync('/path/demo1.txt', 'a');
fs.fchownSync(fd, 1001, 1000);
console.log(fd);
fs.closeSync(fd);
console.log('Done');

lchown : 更改所有权(符号链接)


fs.lchown(path, uid, gid, callback)

fs.lchownSync(path, uid, gid)

linux上不支持,撸不动……


chmod : 更改权限(path)


fs.chmod(path, mode, callback)

//Asynchronous chmod
fs.chmod('/path/demo1.txt', 0777, function (err) {
  if (err) {
    throw err;
  }
  console.log('chmod complete');
});

fs.chmodSync(path, mode)

//Synchronous chmod
fs.chmodSync('/path/demo1.txt', 0777);

这里的 mode 写成八进制 0777 或者对应的十进制 511 ,都可以达到Unix中chmod 777的效果。


fchmod : 更改权限(fd)


fs.fchmod(fd, mode, callback)

//Asychronous fchmod
fs.open('/path/demo1.txt', 'a', function (err, fd) {
  if (err) {
    throw err;
  }
  fs.fchmod(fd, 0777, function (err) {
    if (err) {
      throw err;
    }
    console.log(fd);
    fs.close(fd, function () {
      console.log('Done');
    });
  });
});

fs.fchmodSync(fd, mode)

//Synchronous fchmod
var fd = fs.openSync('/path/demo1.txt', 'a');
fs.fchmodSync(fd, 0777);
console.log(fd);
fs.close(fd);
console.log('Done');

这里的 mode 写成八进制 0777 或者对应的十进制 511 ,都可以达到Unix中chmod 777的效果。


lchmod : 更改权限(符号链接)


fs.lchmod(path, mode, callback)

fs.lchmodSync(path, mode)

linux上不支持,撸不动……