Là một Linux Administrator, bạn sẽ phải kiểm tra định kỳ những file và thư mục nào đang sử dụng nhiều dung lượng đĩa nhất để dọn dẹp. Việc này rất cần thiết để tìm ra những mảnh dữ liệu rác không cần thiết và giải phóng chúng ra khỏi ổ đĩa cứng.
Trong bài viết này mình sẽ trình bày hướng dẫn một cách ngắn gọn nhất – cách để tìm ra những file và thư mục chiếm nhiều dung lượng nhất trên hệ thống Linux bằng các lệnh du và find.
Cách tìm ra file và thư mục chiếm nhiều dung lượng
Chạy lệnh sau để tìm ra các thư mục to nhất nằm trong thư mục /home/lap60267
# du -a /home/lap60267 | sort -n -r | head -n 5
61295008 /home/lap60267/
25270900 /home/lap60267/vmware
25270896 /home/lap60267/vmware/Windows 7 x64
19274900 /home/lap60267/Documents
17229080 /home/lap60267/Documents/Windows 32
Lệnh trên sẽ hiển thị 5 thư mục to nhất nằm trong /home/lap60267
Chỉ hiển thị những thư mục có kích thước lớn nhất
Nếu bạn muốn hiển thị các thư mục lớn nhất trong thư mục hiện tại đang làm việc, bạn có thể chạy lệnh sau:
# du -a | sort -n -r | head -n 5
Tiếp theo mình sẽ giải thích từng tham số trong dòng lệnh trên:
- du: lệnh dùng để ước tính dung lượng đĩa được sử dụng
- a: hiển thị tất cả file và thư mục
- sort: lệnh để sắp xếp các dòng file text
- -n: so sánh theo giá trị chuỗi số
- -r: đảo ngược kết quả so sánh
- head: output đầu tiên của file
- -n: in ra n dòng đầu tiên (trong trường hợp ở trên in ra 5 dòng)
Đôi khi bạn sẽ muốn hiển thị các kết quả ở trên theo định dạng để dễ đọc nhất, bạn sẽ muốn hiển thị dung lượng ở dạng KB, MB hay GB.
# du -hs * | sort -rh | head -5
25G vmware
19G Documents
7,9G Downloads
299M myprojects
288M eclipse
Lệnh bên trên sẽ hiển thị top các thư mục sử dụng nhiều dung lượng đĩa nhất. Nếu bạn thấy một số thư mục không quan trọng, bạn có thể xóa các thư mục con hay toàn bộ thư mục đó đi để giải phóng dung lượng lưu trữ cho hệ thống máy tính của mình.
Để hiển thị các file và thư mục lớn nhất bao gồm cả các thư mục con, chạy lệnh sau:
# du -Sh | sort -rh | head -5
25G ./vmware/Windows 7 x64
17G ./Documents/Windows 32
7,9G ./Downloads
1,9G ./Documents/backup/AZDIGI
1,1G ./.cache/mozilla/firefox/6usiax3w.default/cache2/entries
Các tham số ở câu lệnh trên có ý nghĩa như sau:
- du: lệnh dùng để ước tính dung lượng đĩa được sử dụng
- -h: in ra kích thước ở định dạng dễ đọc (ví dụ 1GB)
- -S: không bao gồm kích thước của các thư mục con
- -s: chỉ hiển thị tổng cho mỗi tham số
- sort: lệnh để sắp xếp các dòng file text
- -r: đảo ngược kết quả so sánh
- head: output đầu tiên của file
Chỉ hiển thị những file có kích thước lớn nhất
Nếu bạn chỉ muốn xem những file có kích thước lớn nhất, chạy lệnh sau:
# find -type f -exec du -Sh {} + | sort -rh | head -n 5
4,0G ./vmware/Windows 7 x64/Windows 7 x64-s004.vmdk
4,0G ./vmware/Windows 7 x64/Windows 7 x64-s002.vmdk
4,0G ./vmware/Windows 7 x64/Windows 7 x64-s001.vmdk
4,0G ./Documents/Windows 32/Windows 7-s001.vmdk
3,9G ./Documents/Windows 32/Windows 7-000002-s003.vmdk
Để tìm những file lớn nhất ở một vị trí cụ thể, bạn chỉ cần sử dụng lệnh file
# find /home/lap60267/Downloads/ -type f -exec du -Sh {} + | sort -rh | head -n 5
Hoặc
# find /home/lap60267/Downloads/ -type f -printf "%s %p\n" | sort -rn | head -n 5
Lệnh ở trên sẽ hiển thị các file có kích thước lớn nhất trong thư mục /home/lap60267/Downloads/
Thường thì khi quản trị hệ thống Linux chúng ta thường xuyên phải kiểm tra tra và giám sát dung lượng ổ đĩa để dự phòng trước và đôi khi là dọn dẹp rác. Để tìm ra những file và thư mục có kích thước lớn nhất bây giờ không còn là vấn gì khó khăn gì nữa. Thậm chí ngay cả đối với những người quản trị Linux mới bắt đầu.