Đôi khi, khi làm việc trên dòng lệnh Linux, bạn có thể muốn nhanh chóng biết được mức sử dụng đĩa của một tập hợp các tệp hoặc của toàn bộ thư mục. Có một công cụ dòng lệnh cụ thể cho phép bạn thực hiện việc này, được gọi là du. Trong hướng dẫn này, chúng ta sẽ thảo luận về những điều cơ bản của công cụ này cũng như các tính năng mà nó cung cấp bằng các ví dụ dễ hiểu.
Nhưng trước đó, cần chia sẻ rằng tất cả các ví dụ và hướng dẫn được đề cập ở đây đều đã được thử nghiệm trên Ubuntu 16.04 LTS.
Sau đây là cách trang hướng dẫn của công cụ mô tả nó:
Các ví dụ dạng Hỏi & Đáp sau đây sẽ giúp bạn hiểu rõ hơn về cách du hoạt động.
Sau đây là một ví dụ:
Như bạn có thể thấy trong đầu ra, số hiển thị ở cột đầu tiên biểu thị mức sử dụng đĩa của tệp tương ứng.
Bạn cũng có thể thực hiện điều này cho một thư mục:
Trong trường hợp của một thư mục, đầu ra hiển thị mức sử dụng đĩa cho các thư mục con cũng như toàn bộ thư mục cha.
Vì vậy, để đầu ra tốt hơn, bạn có thể sử dụng tùy chọn dòng lệnh -h:
Sau đây là một ví dụ về điều này:
Vì vậy, bây giờ rõ ràng từ đầu ra rằng mức sử dụng đĩa được tính bằng kilobyte.
Nhưng nếu yêu cầu là hiển thị riêng thông tin mức sử dụng đĩa cho tất cả các tệp, thì bạn có thể thực hiện việc này bằng tùy chọn dòng lệnh -a. Sau đây là một ví dụ về tùy chọn này:
Như ảnh chụp màn hình ở trên cho thấy, một hàng mới được thêm vào cuối đầu ra, hiển thị tổng dung lượng đĩa đã sử dụng.
Ví dụ, đây là tùy chọn đang hoạt động:
Vui lòng lưu ý rằng các tên bạn nhập vào tệp đầu vào (inp_list trong trường hợp trên của chúng tôi) phải được kết thúc bằng NUL. Ví dụ, tệp inp_list của chúng tôi chứa các nội dung sau:
Chúng tôi đã thực hiện việc này thông qua Vim. Để biết cách thực hiện việc này thông qua Vim, hãy truy cập vào đây.
Tiếp theo, bạn cũng có thể khiến du chấp nhận đầu vào từ STDIN. Đối với việc này, bạn cần truyền dấu gạch nối (-) làm giá trị cho tùy chọn --files0-from. Trong trường hợp này, sau khi nhập từng tên tệp vào STDIN, bạn cần nhấn Ctrl+d hai lần.
Trong trường hợp bạn muốn du hiển thị kích thước của thư mục cha - kích thước của các thư mục con trong mục nhập cuối cùng, bạn có thể sử dụng tùy chọn dòng lệnh -S.
Ví dụ: ảnh chụp màn hình sau đây hiển thị lệnh trên đang hoạt động đối với các tệp .png.
Vì vậy, nếu bạn muốn giới hạn du ở thư mục cấp cao nhất, hãy truyền '0' làm giá trị cho tùy chọn này.
Sau đây là một số ví dụ về tùy chọn này:
Nhưng trước đó, cần chia sẻ rằng tất cả các ví dụ và hướng dẫn được đề cập ở đây đều đã được thử nghiệm trên Ubuntu 16.04 LTS.
Lệnh du Linux
Sau đây là cú pháp của lệnh du:
Mã:
du [OPTION]... [FILE]...
Mã:
du - ước tính mức sử dụng không gian tệp
Tóm tắt đĩa sử dụng tập hợp các FILE, đệ quy cho các thư mục.
Câu hỏi 1. Làm thế nào để biết mức sử dụng đĩa của một hoặc nhiều tệp bằng du?
Vậy là chúng ta đang nói về cách sử dụng cơ bản của công cụ này và nó rất dễ. Tất cả những gì bạn phải làm là truyền tên tệp tương ứng làm đầu vào cho lệnh.
Mã:
du [file1] [file2] ...
Như bạn có thể thấy trong đầu ra, số hiển thị ở cột đầu tiên biểu thị mức sử dụng đĩa của tệp tương ứng.
Bạn cũng có thể thực hiện điều này cho một thư mục:
Trong trường hợp của một thư mục, đầu ra hiển thị mức sử dụng đĩa cho các thư mục con cũng như toàn bộ thư mục cha.
Câu hỏi 2. Làm thế nào để du hiển thị thông tin sử dụng ở dạng có thể đọc được của con người?
Một vấn đề khi bạn chạy du ở chế độ mặc định là số liệu sử dụng được tạo ra trong đầu ra không làm rõ nó biểu thị cái gì. Ví dụ, đầu ra trong ảnh chụp màn hình hiển thị ở phần trước không cho biết '4' và '8' là gì - chúng là byte, kilobyte hay gì?Vì vậy, để đầu ra tốt hơn, bạn có thể sử dụng tùy chọn dòng lệnh -h:
Mã:
du -h [file1] [file2] ...
Vì vậy, bây giờ rõ ràng từ đầu ra rằng mức sử dụng đĩa được tính bằng kilobyte.
Câu hỏi 3. Làm thế nào để du display count cho tất cả các tệp trong một thư mục?
Theo mặc định, bất cứ khi nào bạn truyền tên thư mục làm đầu vào cho du, công cụ chỉ hiển thị thông tin liên quan đến mức sử dụng cho thư mục đầu vào và các thư mục con (nếu có).Nhưng nếu yêu cầu là hiển thị riêng thông tin mức sử dụng đĩa cho tất cả các tệp, thì bạn có thể thực hiện việc này bằng tùy chọn dòng lệnh -a. Sau đây là một ví dụ về tùy chọn này:
Câu hỏi 4. Làm thế nào để du tạo ra tổng mức sử dụng?
Có thể thực hiện việc này bằng tùy chọn dòng lệnh -c. Ví dụ:Như ảnh chụp màn hình ở trên cho thấy, một hàng mới được thêm vào cuối đầu ra, hiển thị tổng dung lượng đĩa đã sử dụng.
Câu hỏi 5. Làm thế nào để du hiển thị thông tin inode thay vì mức sử dụng khối?
Để làm được điều này, bạn cần sử dụng tùy chọn --inode. Sau đây là ảnh chụp màn hình về tùy chọn này khi thực hiện:
Câu hỏi 6. Làm thế nào để du chấp nhận đầu vào từ tệp hoặc STDIN?
Có thể thực hiện việc này bằng tùy chọn dòng lệnh --files0-from. Giả sử tên tệp đầu vào được viết trong tệp có tên inp_list, thì bạn có thể sử dụng lệnh du theo cách sau:
Mã:
du --files0-from=inp_list
Vui lòng lưu ý rằng các tên bạn nhập vào tệp đầu vào (inp_list trong trường hợp trên của chúng tôi) phải được kết thúc bằng NUL. Ví dụ, tệp inp_list của chúng tôi chứa các nội dung sau:
Chúng tôi đã thực hiện việc này thông qua Vim. Để biết cách thực hiện việc này thông qua Vim, hãy truy cập vào đây.
Tiếp theo, bạn cũng có thể khiến du chấp nhận đầu vào từ STDIN. Đối với việc này, bạn cần truyền dấu gạch nối (-) làm giá trị cho tùy chọn --files0-from. Trong trường hợp này, sau khi nhập từng tên tệp vào STDIN, bạn cần nhấn Ctrl+d hai lần.
Câu hỏi 7. Làm thế nào để du loại trừ kích thước của các thư mục con khỏi kích thước của thư mục cha?
Gần cuối Câu hỏi 1 ở trên, chúng tôi đã thảo luận về cách bạn có thể sử dụng du để hiển thị mức sử dụng đĩa cho một thư mục. Đầu ra cho thấy trong khi kích thước của các thư mục con được hiển thị riêng biệt, mục nhập cho thư mục cha (thư mục được truyền vào đầu vào) hiển thị kích thước kết hợp của mọi thứ.Trong trường hợp bạn muốn du hiển thị kích thước của thư mục cha - kích thước của các thư mục con trong mục nhập cuối cùng, bạn có thể sử dụng tùy chọn dòng lệnh -S.
Câu hỏi 8. Làm thế nào để du hiển thị thời gian sửa đổi cuối cùng trong đầu ra?
Để làm điều này, hãy sử dụng tùy chọn dòng lệnh --time. Sau đây là một ví dụ:Câu hỏi 9. Làm thế nào để du loại trừ một số loại tệp cụ thể?
Giả sử thư mục của bạn chứa một số loại tệp và bạn muốn lệnh du không bao gồm một hoặc nhiều loại tệp trong số đó khi tính toán mức sử dụng đĩa cho thư mục. Bạn có thể thực hiện việc này bằng tùy chọn --exclude, tùy chọn này yêu cầu nhập một mẫu.
Mã:
du --exclude=PATTERN [Dir-name]
Câu hỏi 10. Làm thế nào để xác định độ sâu thư mục cho du?
Nếu muốn, bạn cũng có thể giới hạn lệnh du ở độ sâu thư mục cụ thể. Theo cách này, công cụ sẽ chỉ in thông tin sử dụng cho các thư mục mà nó gặp phải ở mức do người dùng chỉ định. Có thể truy cập tính năng này bằng tùy chọn --max-depth.Vì vậy, nếu bạn muốn giới hạn du ở thư mục cấp cao nhất, hãy truyền '0' làm giá trị cho tùy chọn này.
Mã:
du --max-depth=0 [dir-name]