Lệnh nào sau đây được dùng để tìm các tập tin được sửa đổi trong vòng 7 ngày qua và sao lưu chúng vào một thư mục backup?
Đáp án đúng: C
Câu hỏi yêu cầu tìm các tập tin đã được sửa đổi trong vòng 7 ngày qua và sao lưu chúng vào thư mục backup. Chúng ta cần tìm lệnh nào thực hiện đúng cả hai thao tác này.
Phương án A: find . -mtime -7 -exec cp {} backup/ ;
find . -mtime -7
: Tìm các tập tin được sửa đổi trong vòng 7 ngày qua (mtime -7 nghĩa là nhỏ hơn 7 ngày).-exec cp {} backup/ ;
: Thực thi lệnhcp
cho mỗi tập tin tìm thấy, sao chép vào thư mụcbackup/
.
Phương án này có vẻ đúng.
Phương án B: ls -lt | head -7 | xargs -I {} cp {} backup/
ls -lt
: Liệt kê các tập tin và thư mục được sắp xếp theo thời gian sửa đổi mới nhất.head -7
: Lấy 7 dòng đầu tiên (7 tập tin hoặc thư mục được sửa đổi gần đây nhất).xargs -I {} cp {} backup/
: Sao chép các tập tin đã lọc vào thư mụcbackup/
.
Phương án này không chính xác vì nó chỉ lấy 7 tập tin/thư mục được sửa đổi gần đây nhất, không phải tất cả các tập tin được sửa đổi trong 7 ngày qua.
Phương án C: find . -type f -mtime -7 | xargs cp -t backup/
find . -type f -mtime -7
: Tìm các tập tin (-type f
) được sửa đổi trong vòng 7 ngày qua.xargs cp -t backup/
: Chuyển danh sách các tập tin tìm được cho lệnhcp
để sao chép vào thư mụcbackup/
. Option-t
chỉ định thư mục đích.
Phương án này có vẻ đúng.
Phương án D: for file in $(find . -mtime -7); do cp $file backup/; done
find . -mtime -7
: Tìm các tập tin được sửa đổi trong vòng 7 ngày qua.for file in ...; do cp $file backup/; done
: Duyệt qua từng tập tin tìm được và sao chép nó vào thư mụcbackup/
.
Phương án này cũng có vẻ đúng.
Tuy nhiên, phương án C sử dụng xargs cp -t backup/
là cách hiệu quả hơn để xử lý nhiều tập tin đầu vào, đặc biệt khi số lượng tập tin lớn. Phương án A dùng -exec thực thi cp cho mỗi file sẽ chậm hơn. Phương án D cũng tương tự phương án A nhưng có thêm bước lặp bằng vòng for.
Vậy, phương án C là tối ưu nhất.