Có một kích thước tối đa cho tập tin lịch sử bash?


Câu trả lời:


15

Thay vì chỉ định số, bạn có thể làm

unset HISTSIZE 
unset HISTFILESIZE
shopt -s histappend

trong trường hợp đó chỉ có kích thước đĩa của bạn (và "giới hạn tệp lớn nhất" của bạn, nếu HĐH hoặc FS của bạn có một) là giới hạn.

Tuy nhiên, hãy lưu ý rằng điều này cuối cùng sẽ làm chậm bash ngày càng nhiều. xem tài liệu BashFAQ này và bài báo quản trị debian (liên kết ban đầu đã chết, nhìn vào gương: archive.isarchive.org ) để biết các kỹ thuật có quy mô tốt hơn.


Bạn cũng có thể phải tăng history-sizetrong của bạn inputrc.
Chris Xuống

Cảnh báo: Như đã lưu ý [ unix.stackexchange.com/a/76129/78713THER (Below) , điều này có thể khiến Bash kế thừa mặc định và, nếu hiện tại của bạn .bash_historylớn hơn những cái đó, sẽ cắt bớt nó.
Chris Povirk

8

Bạn có thể sử dụng logrotate để bảo tồn các mục cũ. Nó cho phép bạn, ví dụ, đặt giới hạn kích thước sẽ kích hoạt lưu trữ. Nó thường được chạy từ một cronjob hàng ngày, nhưng bạn cũng có thể gọi nó từ .bash_logoutkịch bản của mình .


Có vẻ như cách tiếp cận bền vững nhất với tôi, vì về lâu dài, việc loại bỏ các giới hạn kích thước sẽ có tác động đến hiệu suất. Mặc dù tôi sẽ không sớm đạt đến ngưỡng, nhưng tôi sợ sẽ mất một thời gian để bắt đầu nhận thấy những tác động như vậy. Btw, xem xét thêm cấu hình bạn đặt và lệnh đăng xuất bash tùy chọn để thêm.
Balmipour

Các liên kết là xuống. Có thể chỉnh sửa để trỏ đến một liên kết khác với cùng thông tin dự định?
Bác sĩ Beco

7

@Philomath, bỏ cài đặt các vars môi trường đó không làm việc cho tôi cả! Đối với tôi, điều này khiến bash sử dụng các giá trị mặc định sẵn có của nó (có vẻ như) cắt ngắn .bash_history thành khoảng 9KiB.

Những gì làm việc cho tôi là sau đây trong .bashrc của tôi:

export HISTSIZE=
export HISTFILESIZE=
shopt -s histappend
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.