Nếu bạn không tạo thư mục bằng hệ thống linux, có khả năng bash đã hoàn thành và do đó bash không xem nó dưới dạng tệp.
Một thư mục trong Linux thực chất chỉ là một tập tin. chứa siêu dữ liệu, bao gồm cả vị trí của các tệp nằm "trong" nó. Điều này khác rất nhiều so với cách Windows thực hiện.
Nếu mô-đun (giả sử rằng đó là mô-đun nút) đến từ npm, thì rất có thể nó được tạo bởi hệ thống tệp NTFS.
Tôi không chắc điều này sẽ ảnh hưởng như thế nào đến cách hoàn thành bash nhìn thấy nó, nhưng nếu nó không hiển thị, đó có thể là lý do.
Làm thế nào tôi có thể điều tra nó nhiều hơn.
Để đảm bảo rằng thư mục vẫn còn đó, bạn chỉ có thể đĩa CD
bên trong nó. Dù bằng cách nào, điều này sẽ cung cấp cho bạn thêm thông tin. Ngoài ra, chạy ls -a ~
hoặc là ~
nếu bạn có nó.
Bạn cũng nên tạo một thư mục mới có cùng quy ước đặt tên để xem nó có gặp vấn đề tương tự không.
Ngoài ra, có một công cụ bạn có thể nhận được từ apt được gọi là cây
. Nó giống như ls, nhưng đệ quy. Nó sẽ xuất toàn bộ cấu trúc thư mục của thư mục hiện tại.
Để xem Linux đã "chấp nhận" thư mục đúng chưa, bạn có thể kiểm tra các quyền.
la -a -n
Hãy chú ý đến ký tự đầu tiên trong danh sách cho thư mục thủ phạm. Nó phải là một 'd'. Nếu nó là '-', thì đó hoàn toàn không phải là một thư mục. Bây giờ nó là một tệp liên quan đến HĐH, điều đó có thể có nghĩa là mọi thứ bên trong đều bị xóa sạch.
Thao tác này cũng sẽ hiển thị thông tin về chủ sở hữu và nhóm. Nếu nó có tất cả các thuộc tính này, thì nó chắc chắn sẽ xuất hiện.
Trong trường hợp này, hãy chạy lại các quy trình trên và chụp ảnh màn hình kết quả của từng quy trình. Nếu bạn thêm chúng vào câu hỏi của mình, tôi đảm bảo ai đó sẽ biết chuyện gì đang xảy ra.
CHỈNH SỬA:
Mặc dù tôi rất vui vì bạn đã tìm ra giải pháp cho vấn đề này, nhưng tôi vẫn không khỏi thắc mắc tại sao máy của bạn lại gặp trường hợp này mà không phải của tôi. Như tôi đã đề cập trước đó, tôi đã thử nghiệm nhẹ Ubuntu của riêng mình
(Ubuntu = phiên bản 20.04.2 -- bash = phiên bản 5.0.17 phát hành)
bằng cách làm một @kiểm tra
và kiểm tra kết quả chạy các lệnh & ứng dụng khác nhau trong cùng một thư mục mẹ. Tôi đã làm điều này trước khi bạn phát hiện ra rằng bạn có thể thoát khỏi nó. Vấn đề là tất cả chúng đều hoạt động như mong đợi đối với tôi.
Nếu điều đó xảy ra với bạn và bạn đang sử dụng phiên bản Ubuntu khá mới, thì chắc chắn sẽ có những người khác gặp vấn đề tương tự.
Hiện tại, tôi thấy có hai khả năng chính là nguyên nhân của sự khác biệt. Hoặc là bằng cách nào đó chúng ta đã gặp phải một tình trạng cạnh kỳ lạ nào đó mà chưa ai khác phát hiện ra (đến nỗi tôi cảm thấy hơi xấu hổ khi gõ nó.. XD), hoặc một chương trình khác trên hệ thống của bạn đang thay đổi hành vi của trình bao.
Như tôi đã gợi ý trong các nhận xét, điều này có thể thực hiện được thông qua thao tác với môi trường trình bao. Có một vài biến môi trường (trong môi trường 20.04 của tôi có 11 biến) bắt đầu bằng mẫu BASH
và trỏ trực tiếp đến thuộc tính bash shell. Chúng cực kỳ dễ xác định, vì tất cả chúng đều ở ngay đầu danh sách được hiển thị khi bạn chạy chương trình. bộ
chỉ huy. Nếu bạn đi qua ít hơn
, như trong:
bộ | ít hơn
chúng sẽ là thứ đầu tiên bạn nhìn thấy trong màn hình thiết bị đầu cuối. Mặc dù hầu hết chúng chỉ có nghĩa là hằng số để cung cấp quyền truy cập vào thông tin trong tập lệnh của bạn, v.v. và hiển thị thông tin chứa trong đó (ví dụ: BASH_VERSION), những người khác có thể kiểm soát thông tin mà chúng tham chiếu đến. Một biến như vậy nổi bật với tôi là BASHOPTS
. Trên thực tế, nếu hành vi là kết quả của giá trị của một biến, thì hành vi này sẽ là một ứng cử viên sáng giá cho thủ phạm.
Điều đó nói rằng, một mục đích chính của toàn bộ môi trường là điều khiển hành vi của trình bao.Kết quả là, nó có thể là bất kỳ biến nào trong môi trường của bạn... hoặc thứ gì đó hoàn toàn khác.
Mục đích của tôi trong việc tiếp tục khắc phục sự cố này là để nếu bất kỳ ai khác đến đây tìm giải pháp cho vấn đề này, họ sẽ không chỉ biết cách khắc phục sự cố mà còn biết nguyên nhân gây ra sự cố.
Hiện tại có rất ít thông tin trên web về vấn đề này (tôi không thể tìm thấy gì cả) và bản thân điều đó đã nói lên rất nhiều điều. Đây không bao giờ là trường hợp. Không có câu trả lời nào đủ hiếm, nhưng không có câu hỏi nào gần như chưa từng nghe thấy. Thông thường ai đó ở đâu đó đã gặp vấn đề tương tự và đã đăng về vấn đề đó.
GHI CHÚ:
Qua 'cái này là có thể', ý tôi là thao túng hành vi của bash theo nghĩa chung. Tôi không biết liệu có thể sửa đổi những ký tự mà bash coi là 'đặc biệt' hay không. Điều đó nói rằng, tôi không thể thấy bất kỳ kết luận chấp nhận được khác. Tôi đã phải kéo dài một chút chỉ để đến với cái này. Nếu bất cứ ai khác có bất kỳ ý tưởng, tôi là tất cả các tai.