Lệnh `ls` không liệt kê nội dung thư mục mới nhất


7

Shell Linux không in thông tin cập nhật khi nói đến ls. Ví dụ, tôi sử dụng các quy trình khác của mình (IDE, v.v.) để tạo một số thư mục. Tuy nhiên khi tôi chạy lệnh ls, tôi không thấy các thư mục này. Thông thường phải mất vài giây đôi khi vài phút để thư mục đó xuất hiện trong đầu ra ls.

Chuyện gì đang xảy ra vậy? Tôi có thể buộc làm mới không? Lý tưởng nhất là khi tôi nói "ls" Tôi muốn xem trạng thái khi tôi gõ lệnh không phải là kết quả được lưu trong bộ nhớ cache.

Hệ thống tập tin không phải là một chia sẻ NFS. Điều khác duy nhất tôi có thể nghĩ đến là thư mục được tạo bởi một chương trình khi chạy từ Eclipse (và màn hình được chuyển đến hộp cửa sổ cục bộ của tôi)

Tôi không biết làm thế nào điều này có thể ảnh hưởng đến mọi thứ mặc dù?


Đó là một cú sút xa, nhưng bạn có chắc chắn rằng thư mục được tạo trên đĩa vào thời điểm bạn chạy ls không? Ngoài ra, bạn đã cố gắng \/bin/lsthay vì chỉ ls, để loại trừ bất kỳ nội dung shell hoặc vấn đề răng cưa nào chưa?
một CVn

Không có khả năng, trên hệ thống tập tin nào bạn đang chạy ls?
cúc

Mmmm nó chắc chắn không thể lặp lại. Tôi sẽ sử dụng / bin / ls kể từ đó. @ warl0ck Tôi không hiểu câu hỏi của bạn nghĩa là gì? Tôi đang chạy ls trên một vỏ bash tiêu chuẩn.
Bình tĩnh Bão

Câu trả lời:


14

lskhông có gì để làm với bashhoặc bất kỳ vỏ. Nó liệt kê nội dung của một thư mục, loại trừ các tệp ẩn (những tệp có tên bắt đầu bằng a .) bằng cách yêu cầu danh sách đó từ kernel

Nếu lskhông hiển thị chúng, thì chúng không ở đó (liên quan đến HĐH) hoặc bạn đang liệt kê sai thư mục.

Điều đó có thể xảy ra chẳng hạn khi thư mục hiện tại đã được đổi tên dưới chân bạn. Giống:

$ pwd
/tmp/1
$ ls
x
$ mv /tmp/1 /tmp/2
$ pwd
/tmp/1 # (/tmp/1 has been renamed but the shell is not aware of it)
$ mkdir /tmp/1
$ touch /tmp/1/y
$ pwd
/tmp/1
$ ls  # (ls is still listing `.` which has not changed, but now is a hardlink to `/tmp/2`, while `/tmp/1` is some new directory)
x
$ pwd -P  # (double check what the current directory is)
/tmp/2
$ cd /tmp/1
$ ls
y

2
Aah bạn đúng, ứng dụng của tôi đã di chuyển thư mục và tạo một thư mục trống ở vị trí của nó. Xin lỗi, lỗi của tôi.
Bình tĩnh Bão

Tôi có một kịch bản thậm chí còn khó bắt hơn - cd vào một thư mục, init (giàn giáo) một số dự án trong đó và tôi không hiển thị bất cứ điều gì - thư mục đang được thay thế trên bản sao của dự án mẫu. pwd hiển thị đường dẫn chính xác, nhưng ls không hiển thị bất cứ điều gì. cd hết lần này đến lần khác và ls sẽ hiển thị mọi thứ. Đó không phải là một tùy chọn cho người dùng của tôi (tôi sẽ sao chép nội dung của mẫu thay vì toàn bộ thư mục). :) Cảm ơn câu trả lời.
Nikolay Tsenkov
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.