[Node.js] fs 模組 – 建立軟連結及讀取軟連結

符號連結,也稱為軟連結(Soft Link),檔案系統模組提供了 fs.symlink() 和 fs.symlinkSync() 這兩個方式來建立「軟連結」。

另也提供了 fs.readlink() 和 fs.readlinkSync() 這兩個方法來讀取軟連結。

建立軟連結

var exec = require('child_process').exec; // 引入 child_process 模組
var child_pre = exec('cat txt/symlinkSync.txt', function(error, stdout, stderr){
  console.info('cat txt/symlinkSync.txt stdout: ');
  console.log(stdout);
  console.log(stderr);
});

// 建立軟連結檔案
var srcpath = 'txt/symlinkSync.txt';
var dstpath = 'txtlink/symlinkSync.txt';
var fs = require('fs'); // 引入檔案系統模組
fs.symlinkSync(srcpath, dstpath); // 建立軟連結檔(同步方式)
console.log('fs.symlinkSync() Done.');

var child_suf = exec('cat txtlink/symlinkSync.txt', function(error, stdout, stderr){
  console.info('cat txtlink/symlinkSync.txt stdout: ');
  console.log(stdout);
  console.log(stderr);

  var spawn = require('child_process').spawn;
  var ls_txt = spawn('ls', ['-lh', 'txtlink']);

  ls_txt.stdout.on('data', function(data){
    console.info('ls -lh /txtlink stdout: ');
    console.log('stdout: ' + data);
  });

  ls_txt.on('error', function(code){
    console.log('child process error with code ' + coee);
  });

  ls_txt.on('close', function(code){
    console.log('child process closed with code ' + code);
  });

});

讀取軟連結

var srcpath = 'txt/symlinkSync.txt';
var linkpath = 'txtlink/symlinkSync.txt';
var fs = require('fs');
var linkString = fs.readlinkSync(linkpath); // 讀取軟連結檔案(同步方式),取得的會是所連結檔案的路徑字串

console.info('read linkpath: ' + linkString);
console.log('fs.readlinkSync() Done.');

var srcpath = fs.readlinkSync(srcpath); // 此行會出錯,因為 srcpath 是實際的檔案,非軟連結檔案。

您可在此處留言

搶先留言!

Notify of
avatar
wpDiscuz