86
Làm quen với hệ thống tập tin ext3fs
Trong ví dụ cuối cùng này hãy chú ý rằng trước giá trị kích thước tập tin có
dấu “–”. Dấu này có thể sử dụng với bất kỳ tham số có giá trị số nào trong tiêu chí
tìm kiếm của câu lệnh find. Có nghĩa rằng cần tìm tập tin có giá trị của tham
số nhỏ hơn số đưa ra. Tương tự dấu “+” có nghĩa là cần tìm tập tin có giá trị của
tham số lớn hơn số đưa ra. Nếu không có dấu “+” và dấu “–” thì tìm tập tin có giá
trị của tham số bằng số đưa ra.
Để kết thúc phần về câu lệnh find này, cần nói thêm rằng sau tiêu chí tìm
kiếm có thể đưa ra ngay thao tác xử lý tất cả những tập tin tìm thấy. Ví dụ đơn
giản nhất là thao tác –print.
[user]$ find ~/projects -name *.tex -print
dùng để đưa ra màn hình danh sách tên của tất cả những tập tin tìm thấy cùng
với đường dẫn đầy đủ đến tập tin. Thao tác này được dùng theo mặc định, tức là
luôn luôn được dùng khi không chỉ ra thao tác nào như trong các ví dụ trước đây.
Một ví dụ khác là thao tác -exec cmd {}. Trong đó cmd là một câu lệnh bất
kỳ nào đó của hệ vỏ shell. Trong trường hợp này sẽ thực hiện câu lệnh cmd đối
với tất cả những tập tin tìm thấy. Sau cmd {} là dấu chấm phẩy (;) có dấu gạch
chéo ngược “\” ở trước (chúng ta sẽ hiểu rõ hơn tác dụng của dấu gạch chéo ngược
trong chương ngay sau).
Ví dụ, nếu bạn muốn xóa tất cả những tập tin trong thư mục hiện thời mà
người dùng không “động” đến trong vòng 365 ngày hoặc lâu hơn, thì hãy dùng
câu lệnh sau:
[user]$ find . -type f -atime +365 -exec rm {} \;
Ở chỗ -exec có thể dùng -ok, khi đó trước khi thực hiện câu lệnh cmd cho mỗi
tập tin tìm thấy hệ thống sẽ hỏi lại xem bạn có muốn thực hiện thật không.
Nói chung câu lệnh cmd là một câu lệnh rất mạnh, có ích và là một công cụ
tìm kiếm tốt trong hệ thống tập tin. Đương nhiên là chưa phải tất cả những khả
năng của lệnh này được liệt kê ra ở đây. Hãy tìm hiểu trong trang trợ giúp man
hoặc một cuốn sách dày cộp nào đó về Linux. Và hãy cẩn thận khi sử dụng những
khả năng của câu lệnh này như gọi những câu lệnh khác để thực hiện trên tất
cả những tập tin tìm thấy. Hãy nhớ rằng sự thay đổi thường là một chiều.
4.6.9
Câu lệnh split
Đôi khi chúng ta cần chia một tập tin lớn thành từng phần nhỏ. Lấy ví dụ bạn
có một tập tin phim dạng mpg lớn, khoảng 1,2GB. Và bạn muốn sao chép tập tin
này qua một máy khác nhưng lại không có một kết nối mạng. Và cũng không có
ổ ghi DVD mà chỉ có ổ ghi CD. Nhưng tập tin này không thể nằm gọn trên một
CD (dung lượng khoảng 700MB). Do đó có thể chia tập tin này thành hai phần
mỗi phần nhỏ hơn 700MB sau đó sẽ gộp chúng lại. Để làm được việc này chúng
ta có thể sử dụng lệnh split.
Câu lệnh split cho phép sao chép tập tin bằng cách chia chúng ra thành
từng phần nhỏ theo kích thước đã định. Tham số của lệnh này là tên của tập tin
ban đầu và phần đầu (prefix) tên của các tập tin sẽ tạo ra. Các tập tin thu được
sẽ có tên gồm phần đầu (prefix) này và hai chữ thêm vào để chúng không trùng