Theo thời gian, ổ đĩa của bạn có thể trở nên lộn xộn với nhiều tệp không cần thiết chiếm nhiều dung lượng ổ đĩa. Thông thường, hệ thống Linux hết dung lượng ổ đĩa do tệp nhật ký hoặc tệp sao lưu lớn.
Hướng dẫn này giải thích cách tìm các tệp và thư mục lớn nhất trong hệ thống Linux bằng cách sử dụng lệnh find
và du
.
Tìm tệp lớn bằng lệnh find
Lệnh find
là một trong những công cụ mạnh mẽ nhất trong kho vũ khí của hệ thống Linux quản trị. Nó cho phép bạn tìm kiếm các tệp và thư mục dựa trên các tiêu chí khác nhau, bao gồm cả kích thước tệp.
Ví dụ: để tìm kiếm các tệp có kích thước lớn hơn 100 MB, trong thư mục làm việc hiện tại , bạn sẽ chạy lệnh sau:
sudo find . -xdev -type f -size +100M
Thay thế .
bằng đường dẫn đến thư mục mà bạn muốn tìm kiếm các tệp lớn nhất.
Kết quả đầu ra sẽ hiển thị danh sách các tệp mà không có bất kỳ thông tin bổ sung nào.
/var/lib/libvirt/images/centos-7-desktop_default.img /var/lib/libvirt/images/bionic64_default.img /var/lib/libvirt/images/win10.qcow2 /var/lib/libvirt/images/debian-9_default.img /var/lib/libvirt/images/ubuntu-18-04-desktop_default.img /var/lib/libvirt/images/centos-7_default.img
Lệnh find
cũng có thể được sử dụng kết hợp với các công cụ khác như ls
hoặc sort
để thực hiện các hoạt động trên các tập tin.
Trong ví dụ dưới đây, chúng ta đang chuyển đầu ra của lệnh find
sang ls
sẽ in kích thước của mỗi tệp tìm thấy và sau đó chuyển đầu ra đó thành lệnh sort
để sắp xếp nó dựa trên cột thứ 5 là kích thước tệp.
find . -xdev -type f -size +100M -print | xargs ls -lh | sort -k5,5 -h -r
Đầu ra sẽ giống như sau:
-rw------- 1 root root 40967M Jan 5 14:12 /var/lib/libvirt/images/win10.qcow2 -rw------- 1 root root 3725M Jan 7 22:12 /var/lib/libvirt/images/debian-9_default.img -rw------- 1 root root 1524M Dec 30 07:46 /var/lib/libvirt/images/centos-7-desktop_default.img -rw------- 1 root root 999M Jan 5 14:43 /var/lib/libvirt/images/ubuntu-18-04-desktop_default.img -rw------- 1 root root 562M Dec 31 07:38 /var/lib/libvirt/images/centos-7_default.img -rw------- 1 root root 378M Jan 7 22:26 /var/lib/libvirt/images/bionic64_default.img
Nếu đầu ra chứa nhiều dòng thông tin, bạn có thể sử dụng lệnh head
để chỉ in 10 dòng đầu tiên:
find . -xdev -type f -size +100M -print | xargs ls -lh | sort -k5,5 -h -r | head
Hãy chia nhỏ lệnh:
find . -xdev -type f -size +100M -print
– chỉ tìm kiếm các tệp (-type f
) trong thư mục làm việc hiện tại (.
), lớn hơn 100MB (-size +100M
), không xuống thư mục trên các hệ thống tệp khác (-xdev
) và in tên tệp đầy đủ trên đầu ra chuẩn, theo sau là một dòng mới (-print
) .xargs ls -lh
– kết quả đầu ra của lệnhfind
được dẫn đếnxargs
thực thi lệnhls -lh
sẽ in kết quả đầu ra ở định dạng liệt kê dài mà con người có thể đọc được.sort -k5,5 -h -r
– sắp xếp các dòng dựa trên cột thứ 5 (-k5,5
), so sánh các giá trị ở định dạng con người có thể đọc được (-h
) và đảo ngược kết quả (-r
).head
: chỉ in 10 dòng đầu tiên của đầu ra theo đường ống.
Các find
lệnh đi kèm với rất nhiều tùy chọn mạnh mẽ. Ví dụ: bạn có thể tìm kiếm các tệp lớn cũ hơn x ngày, các tệp lớn có phần mở rộng cụ thể hoặc các tệp lớn thuộc về một người dùng cụ thể.
Tìm tệp và thư mục lớn bằng lệnh du
Lệnh du
được sử dụng để sử dụng dung lượng tập tin dự toán, và nó đặc biệt hữu ích cho việc tìm kiếm các thư mục và các tập tin có thể tiêu thụ một lượng lớn không gian đĩa.
Lệnh sau sẽ in các tệp và thư mục lớn nhất:
du -ahx . | sort -rh | head -5
Cột đầu tiên bao gồm kích thước của tệp và cột thứ hai là tên tệp:
55G . 24G ./.vagrant.d/boxes 24G ./.vagrant.d 13G ./Projects 5.2G ./.minikube
Giải thích về lệnh:
du -ahx .
: ước tính mức sử dụng dung lượng ổ đĩa trong thư mục làm việc hiện tại (.
), đếm cả tệp và thư mục (a
), kích thước in ở định dạng con người có thể đọc được (h
) và bỏ qua các thư mục trên các hệ thống tệp khác nhau (x
).sort -rh
: sắp xếp các dòng bằng cách so sánh các giá trị ở định dạng con người có thể đọc được (-h
) và đảo ngược kết quả (-r
).head -5
: chỉ in năm dòng đầu tiên của đầu ra theo đường ống.
Các du
lệnh có nhiều lựa chọn khác mà có thể được sử dụng để tinh chỉnh đầu ra của việc sử dụng không gian đĩa.
Phần kết luận
Chúng ta đã tìm hiểu cách tìm các tệp và thư mục lớn nhất bằng cách sử dụng lệnh find
và du
.
Bây giờ bạn đã học cách tìm các tệp lớn nhất trên hệ thống của mình, bạn có thể muốn đọc hướng dẫn của chúng tôi về Cách Loại bỏ Tệp và Thư mục bằng Dòng lệnh Linux .
Nếu bạn có bất kỳ câu hỏi hoặc nhận xét, xin vui lòng để lại bình luận bên dưới.