Khi làm việc trên dòng lệnh Linux, có thể có lúc bạn sẽ gặp một tệp là tệp lưu trữ (ví dụ tệp .zip), nhưng phần mở rộng của tệp (hoặc không có phần mở rộng) lại cho thấy điều ngược lại. Trong những lúc như thế này, lệnh file tỏ ra hữu ích vì nó cho phép bạn xác định loại tệp thực tế.
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 lệnh file bằng một số ví dụ dễ hiểu. Nhưng trước khi làm điều đó, cần đề cập rằng tất cả các ví dụ được đề cập ở đây đều đã được thử nghiệm trên máy Ubuntu 18.04 LTS.
Và đây là cách trang hướng dẫn của công cụ giải thích về lệnh này:
Sau đây là một số ví dụ theo kiểu Hỏi & Đáp sẽ giúp bạn hiểu rõ hơn về cách lệnh file hoạt động.
Vì 'test' là một thư mục trên hệ thống của tôi, nên lệnh file đã cho tôi biết điều đó. Sau đây là đầu ra mà nó tạo ra:
Đây là một ví dụ:
Và đây là đầu ra mà lệnh này tạo ra:
Ví dụ, lệnh sau:
tạo ra kết quả sau trên hệ thống của tôi:
). Tuy nhiên, nếu muốn, bạn có thể thay đổi dấu phân cách này bằng tùy chọn dòng lệnh -F.
Ví dụ:
tạo ra kết quả sau:
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 lệnh file bằng một số ví dụ dễ hiểu. Nhưng trước khi làm điều đó, cần đề cập rằng tất cả các ví dụ được đề cập ở đây đều đã được thử nghiệm trên máy Ubuntu 18.04 LTS.
Lệnh tệp Linux
Như đã đề cập ở phần đầu, lệnh tệp trong Linux cho phép bạn xem loại tệp bạn đang xử lý. Sau đây là cú pháp của lệnh:
Mã:
file [OPTIONS] file1 file2 ....
Mã:
file kiểm tra từng đối số để cố gắng phân loại chúng. Có ba bộ kiểm tra, được thực hiện theo thứ tự này: kiểm tra hệ thống tệp, kiểm tra ma thuật và kiểm tra ngôn ngữ. Kiểm tra đầu tiên thành công sẽ khiến loại tệp được in. Loại được in thường chứa một trong các từ văn bản (tệp chỉ chứa các ký tự in và một số ký tự điều khiển phổ biến và có thể đọc an toàn trên thiết bị đầu cuối ASCII), thực thi (tệp chứa kết quả biên dịch chương trình ở dạng có thể hiểu được đối với một số hạt nhân UNIX hoặc hạt nhân khác) hoặc dữ liệu có nghĩa là bất kỳ thứ gì khác (dữ liệu thường là “nhị phân” hoặc không thể in). Ngoại lệ là các định dạng tệp nổi tiếng (tệp lõi, kho lưu trữ tar) được biết là chứa dữ liệu nhị phân. Khi thêm định nghĩa cục bộ vào /etc/magic, hãy đảm bảo giữ nguyên các từ khóa này. Người dùng phụ thuộc vào việc biết rằng tất cả các tệp có thể đọc được trong một thư mục đều có từ “văn bản” được in. Đừng làm như Berkeley đã làm và thay đổi “shell
commands text” thành “shell script”.
Câu hỏi 1. Làm thế nào để sử dụng lệnh file?
Đơn giản, chỉ cần thực thi 'file' với tên tệp làm đầu vào. Ví dụ:
Mã:
file test
Mã:
test: directory
Câu hỏi 2. Làm thế nào để kiểm tra nhiều tệp?
Điều này cũng khá đơn giản. Chỉ cần truyền tên tệp làm đầu vào, tương tự như cách chúng ta đã làm trong ví dụ trước.Đây là một ví dụ:
Mã:
file test test.txt .local
Mã:
test: directory
test.txt: ASCII text
.local: directory
Câu hỏi 3. Làm thế nào để tệp chỉ hiển thị loại trong đầu ra?
Như bạn có thể thấy trong đầu ra lệnh file cho đến nay, đầu ra chứa hai thứ: tên tệp và loại của tệp. Tuy nhiên, nếu muốn, bạn có thể tạo file để chỉ tạo loại trong đầu ra. Bạn có thể thực hiện việc này bằng tùy chọn dòng lệnh -b.Ví dụ, lệnh sau:
Mã:
file -b test
Mã:
directory
Câu hỏi 4. Làm thế nào để xem loại MIME của tệp?
Để xem loại MIME của tệp, hãy sử dụng tùy chọn dòng lệnh -i. Sau đây là một ví dụ:Câu hỏi 5. Làm thế nào để thay đổi dấu phân cách trong đầu ra?
Như chúng ta đã thảo luận ở trên, ở chế độ mặc định, lệnh file tạo ra đầu ra là tên tệp theo sau là loại tệp. Cả hai chi tiết này đều được phân tách bằng dấu hai chấmVí dụ:
Mã:
file -F " +" test
Mã:
test + directory