Sao chép tệp từ Windows vào Hệ thống con Ubuntu [đã đóng]


96

Tôi đã bật chế độ nhà phát triển và cài đặt Bash on Ubuntu on Windows.

Thư mục chính của tôi có thể được tìm thấy dưới đây %localappdata%\Lxss\home\<ubuntu.username>\, tôi đã tạo một thư mục con có tên là Pictures để đường dẫn đầy đủ sẽ là

trên cửa sổ: C:\Users\<windows.username>\AppData\Local\lxss\home\<ubuntu.username>\Pictures

trên bash: /home/<ubuntu.username>/Pictures

nếu tôi tạo một tệp từ bash bằng lệnh, touch hello.txttôi có thể thoải mái xem tệp này trong giao diện người dùng windows và sao chép nó vào Màn hình nền của tôi. Tuy nhiên, nếu tôi tạo một tệp văn bản mới từ giao diện người dùng windows và lưu nó vào C:\Users\<windows.username>\AppData\Local\lxss\home\<ubuntu.username>\Pictures, ngay cả khi tôi khởi động lại bash hoặc windows, tệp sẽ không hiển thị khi tôi làm ls -l.

Tại sao bash không thể xem các tệp được tạo từ phía Windows trong thư mục chính của chính nó?

CHỈNH SỬA Sử dụng /mnt/ckhông phải là một giải pháp, tôi đang cố gắng hiểu tại sao nó không nhìn thấy những tệp đó và nếu có cách khắc phục điều đó để nó có thể xem các tệp được tạo giao diện người dùng, thay vì cố gắng sử dụng thiết bị đầu cuối để sao chép- dán hoặc di chuyển tệp qua.


2
Hấp dẫn! Tôi đoán - và nó chỉ là một dự đoán - là các hệ thống phụ Linux theo dõi các tập tin riêng của mình và không bao giờ trông thấy nếu có những người khác đã được thêm vào. Điều đó sẽ có lý, bởi vì nếu không sẽ khó cung cấp cho hệ thống tệp ảo UNIX ngữ nghĩa cho những thứ như xóa tệp và phân biệt chữ hoa chữ thường. Tôi nghi ngờ rằng bạn sẽ thấy rằng nếu bạn tạo hello.txtHELLO.TXTtừ Bash, một trong các tệp sẽ có tên khác khi bạn nhìn vào nó trong Windows.
Harry Johnston

Stack Overflow là một trang dành cho các câu hỏi về lập trình và phát triển. Câu hỏi này có vẻ lạc đề vì nó không liên quan đến lập trình hoặc phát triển. Xem Những chủ đề tôi có thể hỏi tại đây trong Trung tâm trợ giúp. Có lẽ Super User hoặc Unix & Linux Stack Exchange sẽ là nơi tốt hơn để hỏi. Ngoài ra, hãy xem Tôi đăng câu hỏi về Dev Ops ở đâu?
jww

Như @HarryJohnston cho là, các tên khác nhau. Cả dài và ngắn. Nhưng chỉ trong trường hợp, ngay cả những người ngắn (!)
Serhii Kheilyk

Tôi bỏ phiếu để đóng câu hỏi này là lạc đề vì nó liên quan đến cộng đồng ask-ubuntu.
OmG

2
@jpaugh Tôi biết. Tuy nhiên, câu hỏi này là hợp lý cho các trường hợp hỏi-Ubuntu và không lạc đề.
OmG

Câu trả lời:


141

Bạn sẽ có thể truy cập hệ thống cửa sổ của mình trong /mntthư mục. Ví dụ bên trong bash, sử dụng cái này để truy cập thư mục ảnh của bạn:

cd /mnt/c/Users/<ubuntu.username>/Pictures

Hi vọng điêu nay co ich!


Tôi tin rằng bạn đã hiểu lầm. Tôi có một JPG trên máy tính để bàn của mình, tôi đã sao chép nó với giao diện người dùng vào thư mục hệ thống con bash. Tôi đang cố gắng hiểu tại sao bash không thể nhìn thấy những bức ảnh đó khi chúng ở trong thư mục chính của nó. Đây là hành vi cygwin cơ bản, kéo và thả hoặc sao chép các tập tin dán mà không cần dựa vào các lệnh linux để thực hiện công việc.
JordanGS

bạn có thể đang ở trong thư mục sai.
zoecarver

Hệ thống con Linux không có tiêu chí thiết kế giống như Cygwin. Bạn không nhất thiết phải mong đợi họ cư xử tương tự.
Harry Johnston

nó làm việc cho tôi, mặc dù ubuntu.usernamekhông nhất thiết là tên người dùng cho cửa sổ .. al ít nhất nó không phải là trường hợp đối với tôi;)
user2804070

1
Yêu bạn vì điều này.
Gubatron

53

Bạn chỉ nên truy cập hệ thống tệp Linux (những tệp nằm trong thư mục lxss) từ bên trong WSL ; KHÔNG tạo / sửa đổi bất kỳ tệp nào trong thư mục lxss trong Windows - điều đó rất nguy hiểm và WSL sẽ không nhìn thấy các tệp này.

Tuy nhiên, các tệp có thể được chia sẻ giữa WSL và Windows; đặt tệp bên ngoài thư mục lxss. Bạn có thể truy cập chúng qua drvFS ( /mnt) chẳng hạn như /mnt/c/Users/yourusername/filestrong WSL. Các tệp này luôn được đồng bộ hóa giữa WSL và Windows.

Để biết chi tiết và lý do, hãy xem: https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/



1
Trong Hỗ trợ Hệ thống Tệp WSL, nó mô tả lý do tại sao hành vi đang xảy ra: "bản dịch" tệp chỉ được thực hiện trong hệ thống con lsxx (trên phía linux).
Chris Buck

Trên máy ảo linux, tôi có thể sử dụng SFTP để truyền tệp, tôi sử dụng gì để chuyển tệp CHÍNH XÁC từ Window sang hệ thống con linux? điều này không cung cấp một giải pháp.
Ambroise Rabier

1
@AmbroiseRabier Trong phiên bản WSL mới nhất, hãy sử dụng SFTP, tệp tar hoặc giao thức 9p tích hợp.
reker
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.