Tôi thích watch
lệnh, nhưng nó có những hạn chế .
Tôi tò mò muốn biết liệu tôi có thể bắt chước chức năng của watch
với less
. Tôi chủ yếu tìm kiếm khả năng cuộn qua thư mục của mình khi nó tự động được sửa đổi thông qua một tập lệnh đang chạy.
Tôi thích watch
lệnh, nhưng nó có những hạn chế .
Tôi tò mò muốn biết liệu tôi có thể bắt chước chức năng của watch
với less
. Tôi chủ yếu tìm kiếm khả năng cuộn qua thư mục của mình khi nó tự động được sửa đổi thông qua một tập lệnh đang chạy.
Câu trả lời:
Trong less
, bạn có thể gõ F
để tiếp tục đọc ở cuối tệp (như tail -f
); bạn có thể nhập :e
và tên tệp để xem một tệp khác, nhưng thật không may, nếu bạn nhập tên của tệp hiện tại, less
sẽ không tải lại tệp. Tuy nhiên, có một mẹo để làm cho nó đọc lại tệp hiện tại, được đề xuất bởi sabgenton : gõ :e
và nhập tên của tệp không tồn tại ; khiến ít hơn hiển thị thông báo lỗi và sau đó tải lại tệp hiện tại.
Nếu bạn đang tìm kiếm một giải pháp thay thế watch ls
, đây là một vài:
auto-revert-mode
, nó sẽ tải lại tệp hoặc thư mục cứ sau 5 giây (độ trễ là cấu hình).R
để tải lại URL (cục bộ).less +F
chỉ xem đồng hồ cho nội dung được nối thêm. Sử dụng :e nonexistentfile
để đọc lại đầu vào thay đổi hoàn toàn.
R
không đáng tin cậy làm mới tệp. Nó làm mới màn hình và xóa một số bộ đệm đầu vào, nhưng thực tế nó không tải lại dữ liệu từ tệp trong mọi trường hợp (chỉ khi tệp lớn? Tôi không đào sâu vào mã).
Shift+Fsẽ làm less
tương tự như tailf
. Đó là, nó được làm mới nếu có thêm dữ liệu vào tệp.
less
sẽ không hiển thị những thay đổi đó.
$COMMAND | less
. Tôi tự hỏi nếu có một cách tốt đẹp xung quanh này? Bạn có thể làm những thứ như thế $COMMAND > /tmp/file & less /tmp/file
nhưng điều đó không hay lắm.
Đơn giản chỉ cần gõ:
less +F filename
Điều này giả lập nhấn "F" trong trình chỉnh sửa.
alias check="less +F"
cho tôi .bashrc
.
man
các trang có thể rất nhiều thông tin. Đừng bị đe dọa bởi chúng. Trong số mọi thứ khác, man less
nói rằng bạn có thể sử dụng R
lệnh để:
R Repaint the screen, discarding any buffered input. Useful if the file is changing while it is being viewed.
(Tôi nhận ra câu hỏi này đã hơn 6 tuổi, nhưng nó xuất hiện trên các tìm kiếm của google, vì vậy tôi không phải là người duy nhất nhấp vào liên kết để đến đây.)
less
không mở lại tệp bằng tên tệp của nó - tức là khi inode của tệp thay đổi (như ghi đè tệp bằng cách sử dụng mv
) thì nội dung tệp cũ vẫn ở lại (có lẽ là inode cũ đã đọc lại) - - 2. Dòng hiển thị đầu tiên có thể bắt đầu ở cùng độ lệch byte như trong nội dung tệp gốc. Vì vậy, khi độ dài dòng thay đổi, dòng hiển thị đầu tiên có thể không đầy đủ và các dòng được hiển thị có thể di chuyển lên / xuống.
R
không phải lúc nào cũng làm việc Xem unix.stackexchange.com/questions/4351/ Cách
Phím "F" khi chạy less
sẽ thực hiện "theo dõi" tương tự tail -f
, nhưng tôi không chắc liệu điều đó có đạt được những gì bạn đang tìm kiếm ở đây không.
Tôi thường chỉ gõ Gđể theo dõi đầu ra trên cơ sở một lần. Tôi thấy nó đặc biệt hữu ích trên hệ thống tệp mạng aa như CIFS.
man less
: 'G hoặc> hoặc ESC-> Chuyển đến dòng N trong tệp, mặc định phần cuối của tệp.' Tôi xóa bình luận sai cũ của tôi ở đây, xin lỗi cho họ.
less
, Mark Nudelman, đã trả lời như sau: "Lệnh G thường không bắt buộc đọc lại tệp như lệnh R. Nó có vẻ như vậy nếu phần cuối của tệp chưa được đọc khi G được gọi, do đó lần đầu tiên nhảy đến cuối tệp phải đọc dữ liệu ở đó. Ví dụ: nếu bạn nhảy đến cuối bằng G, sau đó nhảy trở lại từ đầu với 1G, sau đó một chương trình khác sẽ sửa đổi dữ liệu tại phần cuối của tập tin (không thay đổi độ dài), "(tiếp)
Bạn có thể sử dụng vim để đọc tệp sau đó thêm ánh xạ sau vào .vimrc
tệp của mình và bạn có thể dễ dàng tải lại tệp bằng ,r:
let mapleader = ","
nnoremap <leader>r :edit <CR>
Lưu ý nếu bạn đã chỉnh sửa tập tin rồi, vim sẽ phàn nàn. Chỉ cần thay đổi thành
let mapleader = ","
nnoremap <leader>r :edit! <CR>
Để bỏ qua những thay đổi.
vim
từ bàn tay lạnh lẽo, chết chóc của bạn. Bối cảnh của câu hỏi là về bản thân less
, nhưng với tư cách là một người có khuynh hướng đơn nhân , tôi đồng cảm!
R
để sơn lại không phải lúc nào cũng tải lại tập tin. [1]
Một cách giải quyết luôn tải lại tệp là nhấn hq
, sẽ mở trang Trợ giúp, sau đó thoát. Nó có tác dụng phụ là buộc tập tin tải lại.
[1] Dưới đây là một số ví dụ về các tình huống R
làm và không tải lại:
>
và >>
thay đổi: KHÔNG được tải lạised -i
, gEdit, TextEdit: KHÔNG được tải lạivi
thay đổi: KHÔNG được tải lạivi
thay đổi: KHÔNG được tải lạiTôi tin rằng sự khác biệt liên quan đến việc liệu inode có thay đổi hay không (bạn có thể kiểm tra ls -i foo.txt
). Nếu inode thay đổi, sau đó R
sẽ không hoạt động.
Nếu bạn không phản đối việc sử dụng trình duyệt, bạn có thể khởi chạy máy chủ web Algernon bằng lệnh này:
algernon -a -t /directory/name
Một danh sách các tệp sau đó sẽ được hiển thị và tự động làm mới, tại http: // localhost: 3000 /
less
tail -f foo.log | grep bar
và để có thể tự động thay đổi lệnh grep bằng cách khởi động lại đường dẫn tail / grep.