lỗi mklink: Không thể tạo tệp khi tệp đó đã tồn tại


27

Tôi đang cố gắng tạo một liên kết tượng trưng trên máy win7 64 bit của mình để chuyển hướng dữ liệu sao lưu iTunes sang ổ đĩa khác. Tôi khá chắc chắn rằng cú pháp là chính xác nhưng không thể hiểu làm thế nào để xóa lỗi này. Tôi đã thử cả hai lệnh dưới đây có cùng một lỗi. Tôi đang chạy trong Cửa sổ lệnh quản trị viên. Có thể có một số chính sách nhóm công ty ngăn tôi chạy lệnh này?

mklink /D "C:\Users\odellt1\AppData\Roaming\Apple Computer\MobileSync\Backup" "E:\Apple Computer\MobileSync\Backup" 

hoặc là

mklink /J "C:\Users\odellt1\AppData\Roaming\Apple Computer\MobileSync\Backup" "E:\Apple Computer\MobileSync\Backup"

lỗi

Không thể tạo một tập tin khi tập tin đã tồn tại.


cái nào là thư mục gốc?
Akram Berkawy

thư mục gốc là C: \ Users \ odellt1 \ AppData \ Roaming \ Apple Computer \ MobileSync \ Backup
ChiliYago

Có thư mục bạn liên kết đến trên ổ E không? Có một thư mục cùng tên với liên kết tồn tại trên ổ C không? Ổ đĩa E có được định dạng ở dạng NTFS không?
Harry Johnston

1
Cú pháp là chính xác, trước khi chạy lệnh này, thực hiện các bước sau. Di chuyển tất cả nội dung của thư mục sao lưu mobilesync hiện tại sang E: \ Apple Computer \ MobileSync \ Backup. Sau khi hoàn tất, hãy xóa thư mục con sao lưu trống khỏi "C: \ Users \ odellt1 \ AppData \ Roaming \ Apple Computer \ MobileSync". Chỉ có thể tạo Giao diện nếu thư mục con có cùng tên không tồn tại tại vị trí.
Karanvir Kang

Câu trả lời:


29

cú pháp không chính xác. mklinkcó synatx sau:

mklink [options] <Link> <Target>

Targetlà tệp / thư mục tồn tại và Linklà tệp được tạo liên kết đến đích.

vì vậy lệnh nên là:

mklink /D "E:\Apple Computer\MobileSync\Backup"  "C:\Users\odellt1\AppData\Roaming\Apple Computer\MobileSync\Backup"

xem liên kết này để sử dụng mklink.


Tôi đã xem qua các tài liệu và rất ngắn gọn, bạn sẽ nghĩ rằng nó sẽ không có vấn đề gì để chạy. Tuy nhiên, không có may mắn, thậm chí đảo ngược liên kết / mục tiêu như bạn đề xuất kết quả trong cùng một thông báo lỗi.
ChiliYago

1
sau đó, bạn nên kiểm tra xem thư mục E: \ Apple Computer \ MobileSync \ Backup không tồn tại
Akram Berkawy

1
Điều đó đã làm việc. Tôi nhận thấy rằng việc xóa đường dẫn đầy đủ dẫn đến lỗi: "Hệ thống không thể tìm thấy đường dẫn được chỉ định." Vì vậy, tôi đã khôi phục đường dẫn và chỉ xóa thư mục cuối cùng trong đường dẫn (Sao lưu) và sau đó nó hoạt động.
ChiliYago

1
Đây không phải là câu trả lời chính xác. Điều này tạo ra một simlink, không chuyển hướng iTunes sang ổ đĩa khác. Nó hoàn toàn ngược lại - nó hướng một ổ đĩa khác vào thư mục sao lưu iTunes.
Vaiden

8

Cách đơn giản là xóa thư mục Sao lưu trong Sao lưu thư mục apple gốc (trong trình điều khiển C: \) Khi chúng tôi chạy lệnh:

mklink /J "%APPDATA%\Apple Computer\MobileSync\Backup" "E:\iTune Backups"

cửa sổ sẽ tạo một lối tắt liên kết Sao lưu trong trình điều khiển C: \.


2
Đây là câu trả lời đúng mà OP muốn làm
Vaiden 30/03/2017

4

Tôi gặp vấn đề tương tự với "lỗi đã tồn tại tệp", cho đến khi tôi sử dụng "% AppData% ':

mklink / J "% APPDATA% \ Máy tính Apple \ MobileSync \ Sao lưu" "E: \ iTune Sao lưu"

Giao diện được tạo cho C: \ Users \ Me \ AppData \ Roaming \ Apple Computer \ MobileSync \ Backup << === >> E: \ iTune Sao lưu

Lưu ý: Đảm bảo bạn sử dụng dấu ngoặc kép, nếu không bạn sẽ gặp lỗi lệnh cú pháp.


Tôi thích phương pháp đơn giản này để đảm bảo các thư mục nguồn và đích không xuất hiện trước khi tạo đường giao nhau. Tạo đường giao nhau tạo thư mục nguồn, nhưng không phải thư mục đích. Vì vậy, tôi phải tự tạo thư mục đích và sau đó tất cả đều hoạt động như mong đợi.
timoto

Điều này đã sửa nó cho tôi nhưng sẽ rất tốt để có một lời giải thích về lý do tại sao% AppData% sửa nó.
Aureis

2

Tôi chỉ muốn thêm rằng lỗi mà bạn đề cập trong nhận xét của bạn ở trên System cannot find the path specifieddường như xảy ra khi bạn đang liên kết một cách tượng trưng ở cấp độ thư mục không tồn tại ở nguồn ban đầu của liên kết.

Có nghĩa là bạn không thể liên kết

"c:\program files (x86)\some folder1\some folder2\"

nhắm mục tiêu

"d:\programs\some folder1\some folder2\"

Nó sẽ không hoạt động trừ khi ít nhất

"c:\program files (x86)\some folder1"

tồn tại như một phần của nguồn liên kết. Bạn sẽ phải liên kết

"c:\program files (x86)\some folder1"

đến

"g:\programs\some folder1" 

hoặc bạn sẽ phải tạo ít nhất một thư mục trống tại

"c:\program files (x86)\some folder1"

và sau đó tạo liên kết

"c:\program files (x86)\some folder1\some folder2" 

đến

"g:\programs\some folder1\some folder2"

Điều này có vẻ như là một lỗi trên phần của Microsoft, nhưng câu trả lời này thực sự chính xác. Khi bạn liên kết C:\foođến E:` for instance, E: \ foo` phải tồn tại để cd vào C:\foo; tuy nhiên, khi bạn làm cd, bạn được đặt vào E:` -- **not** E: \ foo`. Cảm ơn đã chỉ ra điều này, tôi sẽ không bao giờ tìm ra nó.
Qix
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.