JavaScript is required

Cách nào sau đây để liệt kê tất cả các tập tin có kích thước lớn hơn 500KB trong thư mục hiện tại?

A.

find . -size +500k -exec ls -lh {} ;

B.

ls -lh | grep '500K'

C.

du -sh * | grep '500K'

D.

ls -alh | awk '$5 > 500000'

Trả lời:

Đáp án đúng: A


Phương án A: find . -size +500k -exec ls -lh {} ; Câu lệnh này sử dụng lệnh find để tìm các tập tin trong thư mục hiện tại (.) có kích thước lớn hơn (+) 500KB (500k). Đối với mỗi tập tin tìm thấy, nó thực thi (-exec) lệnh ls -lh để hiển thị thông tin chi tiết về tập tin đó. Đây là phương án đúng.

Phương án B: ls -lh | grep '500K' Câu lệnh này liệt kê tất cả các tập tin và thư mục trong thư mục hiện tại (ls -lh), sau đó lọc kết quả để chỉ hiển thị các dòng chứa chuỗi '500K' (grep '500K'). Tuy nhiên, nó chỉ tìm kiếm các dòng văn bản chứa '500K', chứ không thực sự lọc các tập tin có kích thước lớn hơn 500KB một cách chính xác. Ví dụ, nó có thể hiển thị một tập tin có kích thước 5MB nhưng có chứa dòng chữ "500K" trong tên hoặc quyền truy cập.

Phương án C: du -sh * | grep '500K' Câu lệnh này tính toán kích thước của từng tập tin và thư mục con trong thư mục hiện tại (du -sh *), sau đó lọc kết quả để chỉ hiển thị các dòng chứa chuỗi '500K' (grep '500K'). Tương tự như phương án B, nó chỉ tìm kiếm các dòng văn bản chứa '500K', chứ không đảm bảo rằng tất cả các tập tin lớn hơn 500KB đều được liệt kê. Ngoài ra, du -sh * sẽ không hiển thị các tập tin ẩn.

Phương án D: ls -alh | awk '$5 > 500000' Câu lệnh này liệt kê tất cả các tập tin và thư mục (bao gồm cả các tập tin ẩn) trong thư mục hiện tại (ls -alh), sau đó sử dụng awk để lọc các dòng mà trường thứ 5 (kích thước tập tin) lớn hơn 500000 byte (500KB). Tuy nhiên, ls -alh có thể hiển thị kích thước tập tin ở các định dạng khác nhau (ví dụ: K, M, G), và awk chỉ so sánh giá trị số. Vì vậy, nó có thể không hoạt động chính xác cho tất cả các tập tin. Ngoài ra, nó có thể gặp vấn đề với các tên tập tin có khoảng trắng.

Câu hỏi liên quan