du
là một công cụ dòng lệnh được cung cấp với Linux, nhằm báo cáo dung lượng ổ đĩa được sử dụng bởi các thư mục và file. du
là viết tắt của từ “disk usage”. Đây là công cụ chính để phân tích không gian ổ đĩa trong dòng lệnh.
Cách sử dụng lệnh du trong Linux
Cách sử dụng cơ bản
du /path/to/directory
Chạy lệnh du
với một thư mục để xem phân tích đầy đủ về không gian ổ đĩa mà mỗi thư mục đang nắm giữ. Mỗi thư mục sẽ được liệt kê lần lượt trong đầu ra tiêu chuẩn, vì vậy các thư mục lớn hoặc việc quét toàn bộ hệ thống có thể tạo ra hàng chục ngàn dòng kết quả và mất lượng thời gian đáng kể. Kết quả là, lệnh du
cơ bản thường được bổ sung với các flag (sẽ được chỉ ra bên dưới). Bất kỳ flag nào trong số này đều có thể kết hợp với một flag khác, mặc dù một số tổ hợp loại trừ lẫn nhau vì chúng trái ngược nhau.
Kiểm soát đầu ra
du -c
Hiển thị một dòng ở dưới cùng của đầu ra du
để cho biết tổng dung lượng ổ đĩa được sử dụng bởi các thư mục đã quét.
du -s
Chỉ hiển thị tóm tắt tổng dung lượng ổ đĩa được sử dụng bởi thư mục đã chỉ định. Không có đầu ra được hiển thị cho đến khi quá trình tính toán hoàn tất.
du > du-report.txt
Những người thường sử dụng dòng lệnh sẽ nhận ra lệnh này, nhưng không phải ai cũng vậy. Lệnh này xuất kết quả của lệnh vào một file văn bản trong thư mục hiện hành, có tên là “du-report.txt”.
du | less
Lệnh này tạo ra kết quả gọn gàng và dễ đọc hơn. Bạn có thể được lướt qua nội dung với ít phím tắt điều hướng hơn.
Thay đổi việc hiển thị dung lượng
Lưu ý rằng dung lượng file thường sẽ được làm tròn khi các đơn vị cụ thể được chỉ định. Ví dụ, file 4KB sẽ được hiển thị là chiếm 0MB nếu flag -m được gọi, trong khi file 750KB sẽ được hiển thị là 1MB.
du -h
Hiển thị ở định dạng có thể đọc được với các dung lượng phù hợp được liệt kê, như kilobyte, megabyte và gigabyte, thay vì dung lượng block (khối) tiêu chuẩn.
du -k
Hiển thị số lượng block trong các block 1024 byte (1 kilobyte).
du -m
Hiển thị số lượng block trong các block 1.048.576 byte (1 megabyte).
du -g
Hiển thị số lượng block trong các block 1.073.741.824 byte (1 gigabyte).
Bao gồm các file và liên kết
du -L
Thực hiện theo các liên kết tượng trưng trong dòng lệnh và phân cấp file. Mặt khác, không gian chiếm bởi chính liên kết tượng trưng sẽ được báo cáo (thường là tối thiểu trong hệ thống file) chứ không phải là cây thư mục mà liên kết tượng trưng trỏ tới.
du -a
Hiển thị việc sử dụng ổ đĩa của tất cả các file, không chỉ thư mục.
du /path/to/file.txt
Hiển thị mức sử dụng ổ đĩa của một file cụ thể, như được đặt tên trong lệnh.
Loại trừ các file, thư mục và liên kết
du -X FILE
Loại trừ các file khớp với bất kỳ pattern nào trong chuỗi đã chỉ định.
du --exclude="*.o"
Loại trừ các file và thư mục con theo quy định của pattern. Trong ví dụ này, tất cả các thư mục bao gồm cả chuỗi “*.o” sẽ bị bỏ qua. Lưu ý rằng đây là các pattern shell, không phải biểu thức chính quy. Như vậy, các ký tự điều khiển được giới hạn ở *, khớp với bất kỳ chuỗi nào có 0 hoặc nhiều ký tự và ?
, khớp với bất kỳ một ký tự nào. Lệnh trên sẽ loại trừ các file này khỏi quá trình tính toán dung lượng thư mục. Nếu flag -a được sử dụng, các file bị loại trừ sẽ được bỏ qua trong kết quả đầu ra.
du --threshold=SIZE
Loại trừ các mục nhỏ hơn SIZE nếu đó là giá trị dương hoặc các mục lớn hơn SIZE nếu đó là giá trị âm. SIZE là một số nguyên và có một đơn vị (tùy chọn). Ví dụ, lệnh --threshold=1MB
sẽ bỏ qua tất cả các file nhỏ hơn 1 megabyte (1000^2 byte). Các đơn vị bao gồm K, M, G, T, P, E, Z, Y đại diện cho kibibyte, mebibyte, gibibyte, v.v... hoặc KB, MB, GB, TB, đại diện cho kilobyte, megabyte, gigabyte, v.v... Đây có thể là một công cụ hữu ích để tìm các file lớn nhất trên hệ thống bằng một lệnh như du --threshold=1GB
.
du -d N
Đặt độ sâu tối đa cho N thư mục. Flag này có thể lấy bất kỳ số nguyên dương nào. Với cài đặt này, du
sẽ quét tối đa 2 thư mục con trong thư mục được chỉ định. Nếu các thư mục con khác tồn tại, chúng sẽ không được quét riêng lẻ. Thay vào đó, giá trị của chúng sẽ bao gồm trong những thư mục được báo cáo. Lưu ý rằng -d 0 sẽ báo cáo kết quả giống như flag -s.
Ví dụ, hãy xem xét đường dẫn thư mục “dir1/dir2/dir3/dir4”, có chứa 1 thư mục cha và 3 thư mục con. Lệnh du -d 2 dir1
sẽ quét đến dir3. Dung lượng dir3 sẽ bao gồm các file trong dir4, mặc dù dir4 không được liệt kê riêng lẻ.
Lệnh du
hữu ích nhất khi được ghép nối với các tiện ích khác, như lệnh du -a / | sort -n -r | head -n 10
. Lệnh này sẽ tìm kiếm toàn bộ hệ thống file của bạn (du -a /), sắp xếp kết quả theo kích thước (sort -n -r), và sau đó chỉ hiển thị 10 kết quả hàng đầu (head -n 10). Về cơ bản, đây là một shortcut cho 10 file lớn nhất trên máy tính của bạn. Hãy kết hợp du
với các lệnh khác thông qua pipe để tạo ra kết quả hữu ích hơn nữa.
Chúc bạn thực hiện thành công!