2017-03-03 51 views
11

Tôi đã bật chế độ nhà phát triển và được cài đặt Bash on Ubuntu on Windows.Sao chép tệp từ Windows sang hệ thống con Ubuntu

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

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 tin từ bash bằng cách sử dụng lệnh touch hello.txt tôi có thể tự do xem tập tin này trong giao diện người dùng cửa sổ và sao chép nó vào Desktop của tôi. Tuy nhiên, nếu tôi tạo tệp văn bản mới từ giao diện người dùng của cửa sổ và lưu nó trong C:\Users\<windows.username>\AppData\Local\lxss\home\<ubuntu.username>\Pictures, ngay cả khi tôi khởi động lại bash hoặc cửa sổ, tệp không hiển thị khi tôi thực hiện ls -l.

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

EDIT Sử dụng /mnt/c được không phải là một giải pháp, tôi đang cố gắng tìm hiểu tại sao nó không nhìn thấy các tập tin và nếu có một phương thuốc để đó để nó sẽ có thể để xem UI file được tạo ra, chứ không phải hơn là 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

Thú vị! Tôi đoán - và nó * là * chỉ là một dự đoán - là hệ thống con Linux theo dõi các tập tin riêng của nó và không bao giờ nhìn để xem có bất kỳ người nào khác đã được thêm vào hay không. Điều đó sẽ có ý nghĩa, bởi vì nếu không sẽ rất khó để cung cấp cho ngữ nghĩa hệ thống tập tin ảo của UNIX cho những thứ như xóa các tập tin và phân biệt chữ hoa chữ thường. Tôi nghi ngờ bạn sẽ thấy rằng nếu bạn tạo 'hello.txt' và' HELLO.TXT' từ Bash, một trong các tệp sẽ nằm dưới một tên khác khi bạn xem nó trong Windows. –

+0

Stack Overflow là trang web cho các câu hỏi lập trình và phát triển. Câu hỏi này dường như không có chủ đề vì nó không phải là về lập trình hay phát triển. Xem [Tôi có thể hỏi những chủ đề gì ở đây] (http://stackoverflow.com/help/on-topic) trong Trung tâm trợ giúp. Có lẽ [Super User] (http://superuser.com/) hoặc [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/) sẽ là một nơi tốt hơn để hỏi. Đồng thời xem [Tôi nên đăng câu hỏi về Dev Ops ở đâu?] (Http://meta.stackexchange.com/q/134306) – jww

+0

Như @HarryJohnston cho rằng, 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 cái ngắn (!) –

Trả lời

7

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

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

Hy vọng điều này sẽ hữu ích!

+0

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 tôi, tôi sao chép nó với giao diện người dùng vào thư mục hệ thống phụ bash. Tôi đang cố gắng để hiểu tại sao bash không thể nhìn thấy những hình ảnh khi họ đang ở trong thư mục 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 dán mà không dựa vào các lệnh linux để thực hiện công việc. – JordanGS

+0

có thể bạn đang ở sai thư mục. – pudility

+0

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 có thể mong đợi họ cư xử tương tự. –

16

Bạn chỉ nên truy cập hệ thống tệp Linux (nằm trong thư mục lxss) 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, rất nguy hiểm và WSL sẽ không thấy các tệp này.

Nếu bạn muốn tệp có thể được chia sẻ giữa WSL và Windows, vui lòng đặt tệp bên ngoài thư mục lsxx. Bạn có thể truy cập chúng thông qua drvFS (/mnt) chẳng hạn như /mnt/c/Users/youusername/files trong WSL và sửa đổi chúng trong 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/

+0

Xem thêm [Hỗ trợ hệ thống tệp WSL] (https://blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support/). –

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