Làm thế nào tôi có thể xóa một liên kết tượng trưng?


322

Tôi đã tạo một symlink bằng cách sử dụng mklink. Bây giờ tôi cần thay đổi nó nhưng tôi không thể tìm ra cách xóa nó để tôi có thể tạo lại nó một cách chính xác.

Câu trả lời:


557

Hãy thật cẩn thận.

Nếu bạn có một liên kết tượng trưng là một thư mục (được tạo bằng mklink /d) thì sử dụng delsẽ xóa tất cả các tệp trong thư mục đích (thư mục mà liên kết trỏ đến), thay vì chỉ liên kết.

GIẢI PHÁP: rmdir mặt khác sẽ chỉ xóa liên kết thư mục, không phải những gì liên kết trỏ đến.


103
Chỉ cần vô tình làm điều này (đã xóa toàn bộ nội dung của thư mục đích), đây là một mẹo quan trọng.
Simon Gillbee

4
Câu trả lời này không hoàn toàn chính xác. Delxóa các tập tin, không phải thư mục. Do đó, bạn sẽ không sử dụng delđể xóa liên kết.
AMissico

12
Nhưng không sử dụng rmdirtrong PowerShell. Gói lại cmdtrước. Xem câu trả lời của tôi dưới đây ...
Northben

4
Nếu tôi xóa nó thông qua windows explorer thì sao?
Cheung

8
Có nhân viên Microsoft đi lại, chỉ cố gắng hủy hoại cuộc sống, sự nghiệp và hệ điều hành Windows của tôi.
ThorSummoner

62

Để xóa thư mục liên kết tượng trưng được tạo bằng mklink /dnó, chỉ cần xóa liên kết tượng trưng trong explorer.


27
+1 để thông báo cho mọi người biết đó là lưu để xóa liên kết tượng trưng thông qua Windows Explorer.
AMissico

3
Đúng Vậy. Tôi làm nó suốt. Chỉ cần kiểm tra lại nó ngay bây giờ.
ddelrio1986

2
Điều này chỉ làm việc cho tôi là tốt. tôi đã xóa liên kết không phải là thư mục nguồn được liên kết đến. có lẽ là bắt
R Hughes

3
Sẽ an toàn khi chỉ cần xóa nó bằng Rightclick -> Xóa. Điều này KHÔNG xóa thư mục được liên kết.
Hexo

mklink / d Không hoạt động với tôi trên Windows 7 .. Tôi có thể đã sử dụng một phiên bản cũ
abelito

47

Đối với một liên kết tượng trưng đến một tập tin, sử dụng del. Đối với một liên kết tượng trưng đến một thư mục được thực hiện với mklink /d, sử dụng rmdir.


5
Cảnh báo: "del" sẽ xóa tệp và không chỉ liên kết.
WoodKitty

6
Cảnh báo từ @Tristan là không chính xác, câu trả lời này là chính xác. Đã thử nghiệm trên windows 7.
jiggunjer

1
Trong Windows 7 SP1 (64-bit), một liên kết tượng trưng chỉ đến một tệp (ví dụ: được tạo bằng MKLINK) hoặc đến một thư mục (MKLINK / D) có thể bị xóa trong Windows Explorer, sử dụng tùy chọn 'xóa' GUI Windows thông thường , mà không xóa mục tiêu. Ngay cả một JUNCTION (ví dụ: được tạo bằng lệnh MKLINK / J), nếu bị xóa trong Explorer, sẽ không xóa thư mục đích cũng như nội dung của nó. Nếu không có sản phẩm nào, các thư mục mục tiêu có thể thậm chí không bị xóa bằng lệnh DEL ngã ba tại dấu nhắc lệnh. Đã thử nghiệm ngày hôm nay.
Ed999

Trên Windows Server 2012, phần này đã xóa nội dung thư mục mà symlink của tôi được trỏ đến ...
C Bauer

Bạn nên cảnh báo mọi người không rmdirliên kết từ Powershell!
NH.

28

Trong Powershell, không sử dụng rmdir! Sử dụng cmd /c rmdir .\Targetthay thế. Tôi đã tự mình kiểm tra và xác nhận nó ở đây: http://kristofmattei.be/2012/12/15/powershell-remove-item-and-symbolic-links/


Blog đó nhầm lẫn ý nghĩa của "Target", đây là thư mục thực tế mà liên kết trỏ đến và mọi người thường muốn tránh xóa trong khi xóa liên kết.
kreemoweet

2
rmdirlà một lệnh nội bộ của cmd.exe , do đó, rõ ràng để gọi nó từ các shell khác mà bạn sẽ cần cmd /choặc cmd /k. rmdirtrong PowerShell chỉ là một bí danh choRemove-Item
phuclv

24

Có một giải pháp khác được thử nghiệm bởi tôi và an toàn để sử dụng. chỉ cần thêm vào thư mục thực _ (ví dụ: foo trở thành foo_) sau đó chỉ cần xóa liên kết Symbolik của bạn, sau đó xóa _ khỏi thư mục thực của bạn.


2
vâng, đây là giải pháp an toàn nhất 100% sau khi bạn biết rằng powershell không cung cấp như ** t về rmdir
test30

Đây là một biện pháp phòng ngừa thông minh. +1
Hanna

Cảnh báo: Tôi không nghĩ MIGHT này không hoạt động trên Win10 vì nó sửa các phím tắt khi đổi tên. (Ít nhất là Phím tắt cổ điển) Không được thử nghiệm mặc dù.
Hexo

Tôi đã làm điều này chỉ trong trường hợp. Sau khi tôi đổi tên thư mục đích, liên kết Symbolink không thành công khi tôi cố truy cập nó, vì vậy tôi có thể xóa nó mà không phải lo lắng.
Andrew

21

mklink không thể được sử dụng để xóa các liên kết tượng trưng. Để xóa một liên kết tượng trưng, ​​chỉ cần xóa chúng như thể bạn đang xóa một tệp bình thường. Ví dụ: để xóa liên kết tượng trưng foo được tạo ở trên, hãy nhập lệnh sau:

Nếu liên kết là một liên kết cứng đến một thư mục:

C:\test>rmdir foo

hoặc cách khác, NẾU liên kết trỏ đến một tệp (trái ngược với thư mục)

C:\test>del foo

Nguồn: http://www.mydigitallife.info/2007/05/22/create-symbolic-links-hard-links-and-directory-jifts-in-vista-with-mklink/


2
Chỉ cần đảm bảo rằng bạn không xóa nó bằng del /Shoặc Explorer.
Hello71

1
Xem câu trả lời của eddyq bên dưới vì sử dụng del cho một liên kết được tạo đến một thư mục sẽ không hoạt động và thay vào đó sẽ cố gắng xóa nội dung của thư mục.
jpierson

2
Liên kết cứng đến thư mục không tồn tại. Tôi nghĩ bạn có ý muốn nói symlink.
Brilliand

0

Trong trường hợp của tôi (Windows 10), sau khi tạo liên kết tượng trưng bằng cách sử dụng

MKLINK /D "C:\Users\username\Dropbox\MyProject" "C:\SourceProject"

xóa qua xóa bằng trình duyệt tệp hoặc phím xóa bàn phím cũng xóa thư mục gốc .

Những gì bạn nên làm là loại bỏ liên kết thông qua dấu nhắc lệnh.

C:\Users\username\Dropbox>rd /s MyProject

Để biết chi tiết về lệnh thứ tự: https://docs.microsoft.com/en-us/windows-server/adftime/windows-commands/rd


0

Cách đơn giản nhất là di chuyển thư mục (tại đó liên kết tượng trưng đang trỏ) đến một nơi khác (đến thư mục mẹ) và sau đó xóa liên kết tượng trưng. Không có tập tin sẽ bị tổn hại!


0

Tôi đã cài đặt Link Shell Extension này . Với điều này, bạn có 2 phương pháp.

PHƯƠNG PHÁP 1

Tạo nó bằng cách sử dụng menu ngữ cảnh như được hiển thị và xóa thông qua trình duyệt tệp.

Kiểm tra với một thư mục như C:\Windows\Logsthể hiện hoặc tương tự. Tôi chỉ đang tạo một thư mục của tất cả các vị trí có thể của các tệp tạm thời để xóa và tôi muốn có một thư mục trung tâm nơi tôi có thể theo dõi kích thước của chúng thông qua các liên kết tượng trưng.

Xin lưu ý: Màn hình chuyển sang màu trắng chỉ là UAC .

xóa khỏi phương thức explorer

PHƯƠNG PHÁP 2

Cách an toàn nhất không có giấy tờ ở đây AFAIK .

Trên liên kết tượng trưng đã tạo ( trong các bước được hiển thị ở trên ), nhấp chuột phải vào lần này và nhấp vào thuộc tính sau đó chuyển đến Link Propertiestab.

Lưu ý: Phần mở rộng shell này đã thêm tab này.

Trước khi tôi tiếp tục, rất nhiều thông tin có thể được tìm thấy ở đây , ngoài ra, trên trang chủ là các phiên bản x64 và 32 bit .

Vì vậy, để tiếp tục, ở đây bạn có thể thêm bất cứ thứ gì vào trường mục tiêu miễn là nó khác với mục tiêu ban đầu.


  1. Đây là trước đây với mục tiêu là C:\Windows\Logs mục tiêu trước

  2. Đây là một mục tiêu sau C:\Windows\Logs_, hãy chú ý thêm _vào cuối.

    mục tiêu sau

  3. nhấn OK

  4. Bạn có thể kiểm tra lại điều này bằng cách thực hiện cùng 1-3 bước ở trên để đảm bảo rằng đã bị kẹt, lần này bạn sẽ nhận được thông báo lỗi khi bạn nhấp vào Link Propertiestab để liên kết bị hỏng.

  5. Bây giờ an toàn (r) để xóa liên kết tượng trưng hơn phương pháp 1 IMHO.


Nhưng! Cả hai phương pháp đều hoạt động ở đây nên hoàn toàn tùy thuộc vào sự lựa chọn của người dùng. Tôi thích phương pháp thuộc tính mà tôi vui vẻ vấp ngã, vì vậy bạn chắc chắn 100% liên kết bị hỏng bằng cách sử dụng bước 4 ở trên.

Đây là một gif của tôi tạo liên kết tượng trưng bằng nút chuột phải kéo thư mục này sang thư mục khác và chọn tùy chọn để tạo liên kết tượng trưng trong menu phụ.

Để xóa, chỉ cần làm theo các bước 1-5 ở trên của phương pháp 2 hoặc làm theo phương pháp 1.

Cách tạo và xóa một liên kết tượng trưng bằng phương thức thuộc tính

Xin lưu ý: Màn hình chuyển sang màu trắng chỉ là UAC .

gif về cách tạo và xóa các liên kết đồng bộ bằng phương thức thuộc tính

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.