2015-04-23 40 views
6

Tôi sử dụng mô-đun fs để tạo liên kết tượng trưng.Làm cách nào để buộc tạo liên kết tượng trưng bằng cách ghi đè liên kết tượng trưng hiện có?

fs.symlink("target", "path/to/symlink", function (e) { 
    if (e) { ... } 
}); 

Nếu số path/to/symlink đã tồn tại, lỗi được gửi trong gọi lại.

Tôi làm cách nào để tạo liên kết tượng trưng và ghi đè liên kết tượng trưng hiện có?

Có cách nào khác thay thế cho check error + delete existing symlink + try again không?

+0

Có thể có các mô-đun sẽ cung cấp chức năng như vậy, nhưng cuối cùng nó cũng sẽ sử dụng phương pháp bạn mô tả (đó, hoặc _ "kiểm tra sự tồn tại + xóa nếu tồn tại + liên kết tượng trưng" _). – robertklep

+0

Tôi không làm thế nào để làm điều này trong js, nhưng trong linux bạn có thể ghi đè lên liên kết tượng trưng, ​​vì vậy bạn có thể gọi một kịch bản shell từ nút. Nguồn: http://serverfault.com/questions/389997/how-to-override-update-a-symlink – vanadium23

+0

@robertklep Vâng, chắc chắn rồi. Tôi có thể tạo ra một mô-đun là tốt, chỉ cho điều này, nhưng tôi muốn được quan tâm nếu có một cách bản địa. –

Trả lời

5

Khi sử dụng công cụ dòng lệnh ln chúng ta có thể làm điều này bằng cách sử dụng -f (lực lượng) cờ

ln -sf target symlink-name 

Tuy nhiên, điều này không thể thực hiện bằng cách sử dụng fs API trừ khi chúng ta thực hiện tính năng này trong một module.

Tôi đã tạo lnf - một mô-đun để ghi đè các liên kết tượng trưng hiện có.

// Dependencies 
var Lnf = require("lnf"); 

// Create the symlink 
Lnf.sync("foo", __dirname + "/baz"); 

// Override it 
Lnf("bar", __dirname + "/baz", function (err) { 
    console.log(err || "Overriden the baz symlink."); 
}); 

Read the full documentation on the GitHub repository

2

Bạn có thể tạo liên kết tượng trưng tạm thời với nhau tên (duy nhất) và sau đó đổi tên nó.

Sử dụng fs.symlinkSync(path, tempName) và sau đó fs.rename(tempName, name).

Nó có thể tốt hơn xóa tệp khi ứng dụng khác phụ thuộc vào sự tồn tại của nó (và có thể vô tình truy cập nó khi nó bị xóa, nhưng chưa được tạo lại).

Các vấn đề liên quan