Làm thế nào để có được kích thước của một thư mục trong Linux

How Get Size Directory Linux



Biết được kích thước của một thư mục trong Linux không đơn giản như bạn tưởng. Lệnh ls -s sẽ liệt kê các tệp và thư mục con với kích thước của chúng. Tuy nhiên, kích thước (khoảng 4096 byte) được cung cấp cho các thư mục không phải là mức sử dụng đĩa. Kích thước được thấy cho một thư mục là kích thước của siêu dữ liệu của thư mục.

Siêu dữ liệu là dữ liệu về dữ liệu. Kích thước biểu kiến ​​là kích thước của dữ liệu quan trọng đối với người dùng máy tính thông thường. Nội dung (văn bản) của chữ cái, hình ảnh, video, v.v. của người dùng, tạo thành kích thước rõ ràng. Dữ liệu này không được lưu giữ tùy tiện trong máy tính. Dữ liệu có kích thước biểu kiến ​​phải được lưu giữ theo kiểu kiểm soát. Nó phải được nhận dạng. Nó phải được hoàn thành. Có những yêu cầu khác cho nó. Cần thêm một số dữ liệu để đạt được những yêu cầu bổ sung này và dữ liệu bổ sung này là siêu dữ liệu.







Hãy nhớ rằng, chỉ có một thư mục trong một tập. Phần còn lại là các thư mục con. Thư mục gốc làm phát sinh các thư mục con, làm phát sinh các thư mục con khác đi xuống. Tuy nhiên, các thư mục con thường được gọi đơn giản là các thư mục. Và như vậy, chỉ có một cây thư mục.



Vì vậy, ls -s không hữu ích để lấy kích thước của một thư mục. Lệnh nào sau đó là hữu ích? - Lệnh du. du là viết tắt của Disk Usage. Nó in việc sử dụng đĩa của thư mục.



Bài viết này giải thích các tính năng khác nhau của lệnh du trong Linux, cung cấp các cách lập trình viên khác nhau để biết kích thước của các thư mục và thư mục con của chúng. Bash là shell được sử dụng cho các mẫu mã của bài viết này.





Nội dung bài viết

du mà không có Lựa chọn hoặc Đối số

Thư mục làm việc hiện tại là thư mục mà người dùng hiện đang làm việc. Lời nhắc thường hiển thị thư mục làm việc hiện tại. Nhập du mà không có bất kỳ tùy chọn và đối số nào, như vậy:



của

và sau đó nhấn phím Enter sẽ hiển thị mức sử dụng đĩa cho tất cả các thư mục con của thư mục làm việc hiện tại. Nó sẽ hiển thị thông tin này cho cây con của thư mục làm việc hiện tại. Một dấu chấm trên màn hình thể hiện thư mục làm việc hiện tại.

Mỗi đường dẫn của cây con được biểu diễn trong một dòng, tại màn hình. Mỗi dòng bắt đầu bằng kích thước của thư mục (là họ trong đường dẫn). Màn hình có thể giống như sau:

số 8./dir1/dir2/dir3/dir4

12./dir1/dir2/dir3

16./dir1/dir2

hai mươi./dir1

Lưu ý rằng không rõ kích thước tính bằng byte hay kilobyte hay megabyte hay gigabyte. Kilobyte ký hiệu, K có nghĩa là 1024 byte; Ký hiệu Megabyte, M có nghĩa là 1.048.576 byte; Gigabyte ký hiệu, G có nghĩa là 1.073.741.824 byte. Đối với các bội số được chỉ ra, tùy chọn -h (chuyển đổi) nên được sử dụng, như sau:

của -NS

Màn hình sau đó sẽ trông như vậy:

8,0 nghìn./dir1/dir2/dir3/dir4

12 nghìn./dir1/dir2/dir3

16 nghìn./dir1/dir2

20 nghìn./dir1

Khi tùy chọn -h được sử dụng, các kích thước được cho là ở dạng có thể đọc được.

Lưu ý: với tùy chọn –all, lệnh du cũng sẽ cung cấp mức sử dụng đĩa cho các tệp; tuy nhiên, việc sử dụng đĩa cho các tệp sẽ không được giải quyết trong bài viết này.

Kích thước của các thư mục khác

Đường dẫn tuyệt đối điển hình cho một ổ đĩa Linux như sau:

/Trang Chủ/John/Nói/dirTwo/dirThree/dirFour

Đầu tiên / là thư mục gốc. Thư mục này có các thư mục con ngay lập tức, bao gồm cả thư mục chính. Thư mục chính có thư mục của người dùng. Nếu tên của người dùng là John, thì anh ta có thể đặt tên cho thư mục của người dùng là john. Thư mục của người dùng được xác định bằng ~. Vì vậy, người dùng có thể sử dụng lệnh cd ~ để truy cập thư mục của mình từ bất kỳ thư mục nào. dirOne là một thư mục do người dùng tạo. Người dùng cũng có thể tạo các thư mục khác ở cấp độ này. dirTwo, dirThree và dirFour là các thư mục con của các thư mục trước của chúng, do người dùng tạo ra.

Người dùng có thể biết kích thước của bất kỳ thư mục nào khác và các thư mục con của nó (cây con) từ bất kỳ thư mục nào, bỏ qua đường dẫn tuyệt đối làm đối số. Ví dụ: nếu cần sử dụng đĩa,

/Trang Chủ/John/Nói/dirTwo

thì lệnh sẽ là:

của -NS /Trang Chủ/John/Nói/dirTwo

hoặc

của -NS~/Nói/dirTwo

nơi ~ đại diện cho thư mục của người dùng.

Để sử dụng một đường dẫn tương đối, người dùng phải ở trong thư mục mẹ tương ứng. Ví dụ: nếu lời nhắc đang hiển thị,

John@chủ nhà: ~/nói $

nghĩa là người dùng đang ở thư mục, / home / john / dirOne, thì lệnh sau sẽ cho kết quả tương tự như lệnh trên:

của -NSdirTwo

Các đường dẫn sẽ vẫn là tương đối. Để hiển thị cùng một thông tin cho thư mục hiện tại, không sử dụng đối số hoặc sử dụng dấu chấm.

Lược đồ này có thể được sử dụng để lấy kích thước của chỉ một thư mục, thư mục cuối cùng trong đường dẫn (trước đường dẫn). Có thể lấy kích thước của một thư mục ở giữa đường dẫn - hãy xem loại trừ = PATTERN bên dưới.

Tổng cộng

Tổng kích thước lớn của tất cả các thư mục liên quan có thể được tạo ra. Đối với tình huống trên, lệnh sẽ là:

của -NS --toàn bộ

kích thước rõ ràng

Kích thước biểu kiến ​​thường nhỏ hơn dung lượng sử dụng đĩa. Tuy nhiên, trong một số trường hợp, kích thước biểu kiến ​​lớn hơn mức sử dụng đĩa; lý do - xem sau. Lệnh để có được các kích thước rõ ràng cho đường dẫn tương đối ở trên sẽ là:

của -NS - kích thước rõ ràngdirTwo

Độ sâu tối đa

Với –max-depth = 0, du chỉ in kích thước của thư mục làm việc hiện tại; với du –max-depth = 1, du in kích thước của thư mục làm việc hiện tại và kích thước của tất cả các thư mục con cấp đầu tiên của nó; với –max-depth = 2, du in ra kích thước của thư mục làm việc hiện tại và kích thước của tất cả các thư mục con cấp một của nó và của tất cả các thư mục con cấp hai của nó; với –max-depth = 3, du sẽ in ra kích thước của thư mục làm việc hiện tại và tất cả các thư mục con cấp một của nó, và tất cả các thư mục con cấp hai và của tất cả các thư mục con cấp ba của nó; điều này tiếp tục với sự gia tăng giá trị của độ sâu tối đa. Một ví dụ về việc sử dụng nó là:

của -NS - độ sâu tối đa=2

Lệnh sudo

Một trong những thư mục có các thư mục con riêng của nó trong thư mục gốc là var. Nếu người dùng gõ

của -NS /ở đâu

và nhấn Enter, anh ta sẽ nhận ra rằng quyền bị từ chối đối với một số thư mục. Đó là, anh ta không thể biết kích thước của một số thư mục. Quyền bị từ chối vì người dùng không phải là siêu người dùng. Người dùng siêu cấp có đặc quyền để xem kích thước (sử dụng đĩa) của các thư mục đó. Vì vậy, để người dùng có được đặc quyền đó, anh ta phải sử dụng lệnh sudo như sau:

sudo của -NS /ở đâu

Nếu shell yêu cầu người dùng nhập mật khẩu của mình, người dùng phải nhập mật khẩu và nhấn Enter. Với lệnh sudo, người dùng bình thường (lập trình viên) có thể thấy kích thước của tất cả các thư mục trong thư mục var và các thư mục tương tự.

Loại trừ Mục nhập theo Kích thước

Tùy chọn –threshold = SIZE sẽ không cho phép liệt kê các thư mục có kích thước nhỏ hơn SIZE. Đối với con đường,

/Trang Chủ/John/Nói/dirTwo/dirThree/dirFour

với lời nhắc lúc[email được bảo vệ]: ~ $, sau đó

của -NS --threshold= 12 nghìn dirOne

trong đó 12K có nghĩa là 12 kilobyte, sẽ không hiển thị dòng cho bất kỳ thư mục nào có mức sử dụng đĩa dưới 12K.

–Exclude = PATTERN

Tùy chọn và giá trị này có thể bỏ qua các dòng thư mục mà người dùng không muốn trong danh sách.

Để bỏ qua dòng cho thư mục cuối cùng, dirFour of the path

/Trang Chủ/John/Nói/dirTwo/dirThree/dirFour

lệnh phải là:

của -NS --loại trừ= nói/dirTwo/dirThree/dirFour dirOne

Kết quả sẽ giống như,

4.0 nghìn dirOne/dirTwo/dirThree

8.0 nghìn dirOne/dirTwo

12 nghìn dirOne

Lưu ý: kích thước chưa bao gồm kích thước của thư mục cấp cuối cùng (dirFour) của đường dẫn.

Để chỉ có kích thước của các thư mục độ sâu trên và cây con của chúng, không có các thư mục độ sâu thấp hơn trong tùy chọn. Vì vậy, với lệnh,

của -NS --loại trừ= nói/dirTwo/dirThree dirOne

đầu ra sẽ giống như,

4.0 nghìn dirOne/dirTwo

8 nghìn dirOne

Lưu ý: các kích thước đã loại trừ kích thước của các thư mục đòn bẩy dưới của cây.

Hãy xem xét lại, liên kết tuyệt đối,

/Trang Chủ/John/Nói/dirTwo/dirThree/dirFour

Lệnh sau sẽ lấy việc sử dụng đĩa chỉ của thư mục dirTwo, là một thư mục nằm trong đường dẫn. Lệnh là:

của -NS --loại trừ=/Trang Chủ/John/Nói/dirTwo/ * /Trang Chủ/John/Nói/dirTwo

Đối số có tất cả các thư mục trước đến thư mục được đề cập. Giá trị của loại trừ có tất cả các thư mục đứng trước, kết thúc bằng *, ngay sau thư mục được đề cập. * có nghĩa là tất cả các thư mục con ở cấp độ đó (và các cây con của chúng). Kết quả sẽ giống như,

5,0 nghìn/Trang Chủ/John/Nói/dirTwo

Phần kết luận

Cố gắng biết kích thước của một thư mục bằng lệnh ls -s là sai lầm. Với nó, chỉ siêu dữ liệu của thư mục được lấy. Để biết việc sử dụng đĩa của một thư mục, nên sử dụng lệnh du. Khi được sử dụng với tùy chọn -h, kích thước của các thư mục có thể đọc được. Kích thước biểu kiến ​​có thể nhận được bằng cách sử dụng tùy chọn kích thước biểu kiến. Không có bất kỳ tùy chọn và đối số nào, lệnh du chỉ hiển thị kích thước của tất cả các thư mục con của thư mục hiện tại, bao gồm cả kích thước của thư mục hiện tại. Đối số để du là con đường, có thể bắt đầu từ gốc. Các tùy chọn và một số giá trị của chúng quyết định chính xác thư mục nào được giải quyết. Lệnh sudo cung cấp cho người dùng thông thường các đặc quyền siêu người dùng theo mặc định.