Sử dụng lệnh File trong Linux để xác định loại tệp

Tác giả: VPS chính hãng 20 tháng 07, 2023

Quản lý dữ liệu và tệp trong hệ thống Linux không đơn giản như bạn nghĩ. Linux bao gồm nhiều file tiêu chuẩn khác nhau, thường được phân loại thành 3 file: file thông thường, file thư mục và file đặc biệt. Cách dễ nhất để phát hiện loại file trong Linux là kiểm tra phần mở rộng của tệp mong muốn, thường là ‘.txt’, ‘.py’ hoặc ‘.go’. Nhưng vì các tệp thường không có phần mở rộng hợp lệ hoặc đôi khi kiểu thực của chúng mâu thuẫn với tên tệp nên việc xác định loại tệp và quản lý chúng trở nên hơi phức tạp. Người dùng Linux cần một giải pháp hữu ích để quản lý và sắp xếp thông tin, chạy tệp bằng chương trình và truy cập thêm thông tin về tệp. Sử dụng lệnh File là một giải pháp hiệu quả để xác định loại tệp trong hệ thống Linux, cũng là một trong những lệnh hữu ích nhất trong quản lý dữ liệu. Trong bài viết này, hãy cùng tìm hiểu về cách sử dụng lệnh File trong Linux để cải thiện hiệu suất quản lý của VPS Linux hoặc bất kỳ hệ thống Linux nào, và bằng cách sử dụng các chia sẻ được cung cấp trong bài viết bạn có thể dễ dàng nhận ra loại tệp trong Linux.

Giới thiệu về cú pháp lệnh File trong Linux

Cú pháp chính của lệnh file trong Linux có định dạng sau:

file [options] [file name]

Trong đó:

  • file: ký tự file được gõ để thực hiện lệnh.
  • option: được gõ để thay đổi hoạt động của lệnh, bạn có thể thay thế các biến khác nhau cho các mục đích khác nhau.
  • file name: trong phần này, hãy thay thế tên của tệp mà bạn định kiểm tra và phân tích nội dung của nó.

Bằng cách thực hiện cú pháp chính của lệnh file, các kiểm tra được thực hiện để phát hiện loại tệp mà chúng ta sẽ tìm hiểu trong phần bên dưới.

  • Filesystem test: Kiểm tra này được thực hiện để kiểm tra lệnh gọi hệ thống stat(2) và kiểm tra kết quả với tệp tiêu đề hệ thống để tìm hiểu xem tệp có trống hay là một loại tệp đặc biệt hay không. Ngoài ra, nếu nó được chỉ định trong tệp tiêu đề hệ thống, nó sẽ tìm một định dạng quen thuộc liên quan đến hệ thống mà bạn đang làm việc.
  • Magic test: Bằng cách sử dụng chuỗi số được lưu trữ ở đầu tệp, được gọi là số ma thuật để xác định loại tệp. Nó sẽ kiểm tra xem các tệp thực thi có phải là tệp nhị phân hay không. Để truy cập thông tin liên quan đến các bài test như vậy bạn có thể sử dụng /etc/magic hoặc /usr/share/misc/magic từ tệp đã biên dịch.
  • Language test: Kiểm tra này được thực hiện để kiểm tra tập hợp các ký tự có trong tệp. Chẳng hạn như văn bản ASCII hoặc UTF-8 và bằng cách sử dụng một thẻ cụ thể, nó sẽ xác định ngôn ngữ lập trình của tệp thực thi nhị phân. Ngoài ra, kiểm tra này cung cấp thông tin trong đầu ra về loại tệp và loại dữ liệu được lưu trữ trong tệp, kích thước và phiên bản của chúng theo cách nhập các tùy chọn khác nhau trong lệnh tệp. Kiểm tra ngôn ngữ phân tích chúng bằng cách quan sát trình tự cụ thể trong các dòng đầu tiên.
Lệnh File trong Linux giúp quản lý và sắp xếp file hiệu quả

Lệnh File trong Linux giúp quản lý và sắp xếp file hiệu quả

Ví dụ muốn chạy thử file văn bản bằng lệnh file thì nhập lệnh như sau:

file example.txt

Output:

example.txt: ASCII text

Vì vậy, ở đầu ra, bạn sẽ thấy tệp văn bản ASCII đã được tạo.

=>> Hướng dẫn sử dụng lệnh Time trong Linux

Cách sử dụng lệnh File trong Linux

Để thực hiện các hướng dẫn sau, bạn phải sử dụng VPS Linux hoặc hệ thống đang chạy một trong các bản phân phối Linux. Ngoài ra, để thực thi lệnh tệp trong VPS Linux, tốt hơn hết là kết nối với VPS thông qua ứng dụng khách SSH như PuTTY và Terminal.

Kiểm tra tệp bằng danh sách tệp

Trong phương pháp này, một tệp văn bản được sử dụng dưới dạng danh sách các tệp như sau:

file -f filename

Ví dụ về output:

Sử dụng lệnh File để kiểm tra tệp bằng danh sách tệp

Sử dụng lệnh File để kiểm tra tệp bằng danh sách tệp

file -f list.txt

Như bạn có thể thấy, để đạt được mục tiêu trong phần này, bạn sẽ thêm tùy chọn -f cùng với đường dẫn đến tệp danh sách vào lệnh file.

Lưu ý: nội dung của tệp văn bản bạn sử dụng phải làm sao cho mỗi dòng đều có tên tệp.

Tìm loại tệp

Một trong những vấn đề trong việc kiểm tra loại tệp trong Linux là người dùng có thể không nhận được dữ liệu thực bằng cách đổi tên tệp của họ sau khi cập nhật thông tin. Để giải quyết thách thức này và xác định chính xác loại tệp, bạn có thể sử dụng lệnh sau:

file filename

Ví dụ: nếu bạn đã đổi tên tệp của mình từ example.txt thành text.zip. Để truy cập loại tệp hợp lệ, bạn phải chạy lệnh sau:

file text.zip

Output:

text.zip: ASCII  text

Như bạn có thể thấy, đầu ra hiển thị tên và loại tệp thực (trong ví dụ của chúng tôi, đó là tệp văn bản ASCII).

Nếu bạn muốn đầu ra của lệnh file xác định loại tệp thực tế được trình bày ở chế độ ngắn gọn, bạn phải chạy lệnh sau trong thiết bị đầu cuối:

file -b text.zip

Output:

ASCII text

Lúc này tùy chọn -b sẽ tóm tắt đầu ra.

Kiểm tra nhiều tệp

Để kiểm tra nhiều tệp cùng một lúc, hãy làm theo mẫu hướng dẫn bên dưới:

file [file name 1] [file name 2] … [file name n]

Ví dụ: nếu bạn muốn kiểm tra đồng thời tệp văn bản, trang web và ảnh, lệnh bạn phải thực hiện sẽ như sau:

file example.txt index.html sample.png

Kiểm tra loại tệp của một số tệp thông qua danh sách

Nếu bạn muốn liệt kê tất cả các loại tệp và thư mục trong thư mục làm việc của mình bằng lệnh File, bạn phải chạy lệnh sau:

file *

Output:

Package.json: JSON data

test.txt:          ASCII text

text.zip:          ASCII text

Lệnh File thậm chí còn cho phép xác định loại tệp trong một thư mục Linux cụ thể. Để làm điều này, sử dụng cú pháp sau:

file [path-to-directory]/*

Liệt kê tất cả các loại tệp trong một phạm vi cụ thể

Đôi khi bạn cần kiểm tra các loại tệp trong một phạm vi cụ thể. Đối với điều này, bạn phải liệt kê tất cả các loại tệp bằng cách sử dụng lệnh File và phạm vi Regex-style. Do đó, cú pháp chung cho mục đích này như sau:

file [range1-range2]*

Ví dụ để hiển thị các loại file trong khoảng từ A đến Z thì bạn thực hiện lệnh như sau:

file [A-Z] *

Lưu ý: viết hoa các chữ cái trong lệnh này rất quan trọng, vì vậy đầu ra của lệnh trên bao gồm các tệp có tên bắt đầu bằng các ký tự viết hoa trong phạm vi được chỉ định. Nếu bạn muốn kiểm tra các tệp có ký tự nhỏ hơn trong phạm vi được chỉ định ngoài các tệp có tên bắt đầu bằng ký tự viết hoa, bạn nên thêm các chữ cái viết thường vào lệnh trên như sau:

file [A-Z]* [a-z]*

Thêm dấu phân cách vào Output

Trong lệnh File của Linux, bằng cách thêm tùy chọn -F, bạn có thể sử dụng ký tự được chỉ định để phân tách các phần tên tệp và loại tệp trong đầu ra. Xem xét ví dụ sau để hiểu rõ hơn cách bạn có thể tách đầu ra bằng lệnh File. Trong ví dụ của chúng tôi, ký tự (+) được chỉ định làm dấu phân cách:

file -F + Example example.txt sample.png index.html
Output đã được thêm dấu + để phân tách các file

Output đã được thêm dấu + để phân tách các file

Phát hiện loại tệp MIME

Để phát hiện loại tệp MIME, bạn phải thêm tùy chọn -i vào lệnh File trong Linux. MIME phân tách với nhau bằng cách sử dụng / không có dấu cách. Để xác định loại tệp MIME, cú pháp chính như sau:

file -i filename

Ví dụ: nếu bạn muốn truy cập loại MIME của tệp example1.txt, hãy nhập lệnh sau:

file -i example1.txt

Output:

example1.txt:  text/plain; charset=us-ascii

Do đó, đầu ra của lệnh này sẽ chứa tệp text/plaincharset=us-ascii thay vì cung cấp định dạng tệp văn bản ASCII.

Đọc loại tệp đặc biệt

Bằng cách thêm tùy chọn -s vào lệnh File trong Linux, bạn sẽ có thể đọc tệp cụ thể. Nếu lệnh File không cung cấp thông tin đầy đủ về tệp cụ thể, bạn có thể đọc các tệp đặc biệt bằng cách thêm tùy chọn -s. Tất nhiên, việc thực thi lệnh này cần có sự cho phép của người dùng Root, nếu không, bạn sẽ gặp lỗi. Cú pháp chính để đọc một tệp đặc biệt như sau:

sudo file -s filename

Lệnh này phân loại tệp dưới dạng thư mục, liên kết tượng trưng hoặc khối tệp đặc biệt.

Đọc tệp nén

Để có thể đọc các tệp nén (ví dụ: tệp ZIP hoặc gzip) thông qua lệnh File, bạn có thể sử dụng hai phương pháp:

  • Sử dụng tùy chọn -z: cung cấp thêm chi tiết và thông tin.
  • Sử dụng tùy chọn -Z: cung cấp tất cả các loại tệp.

Định dạng chung của lệnh File có thêm tùy chọn -z như sau:

file -z filename

Ví dụ, để đọc toàn bộ nội dung của tệp example1.txt.gz, bạn phải thực hiện lệnh sau:

file -z example1.txt.gz

Output:

Example1.txt.gz:  ASCII text (gzip compressed data, was “example1.txt” , last modified:  sun sep 8 06:10:35  2022, from Unix)

Định dạng chung của lệnh File bằng tùy chọn -Z như sau:

file -Z filename

Ví dụ: để xác định loại tệp example.gz, bạn phải nhập lệnh sau:

file -Z example.gz

Output:

Example1.txt.gz:  ASCII text

Xóa phần đệm tên tệp khỏi đầu ra của lệnh File

Nếu muốn bỏ phần đệm giữa phần type và file name trong đầu ra của lệnh file, hãy nhập tùy chọn -N vào lệnh file theo ví dụ sau:

file -N Example example.txt sample.png index.html

Kiểm tra phiên bản được phân tích cú pháp của tệp

Để xem phiên bản được phân tích cú pháp của tệp bằng cách chạy lệnh File, bạn phải thêm tùy chọn -c vào lệnh để lấy thông tin. Cú pháp cơ bản để kiểm tra phiên bản được phân tích cú pháp của tệp như sau:

file -c filename

Lệnh trên cũng được sử dụng cùng với -m.

=>> Cách chỉnh sửa tệp Sudoers và quản lý lệnh Sudo trong Linux

Để quản lý tệp và dữ liệu trong hệ thống Linux, bạn sẽ cần truy cập vào tất cả các loại tệp và kiểm tra tệp, trong đó sử dụng lệnh File rất hiệu quả trong việc xác định loại tệp và quản lý dữ liệu cho người dùng Linux. Hy vọng bài viết này có thể giúp bạn tăng hiệu quả trong quản lý hệ thống VPS Linux của mình. Truy cập vpschinhhang.com để biết thêm nhiều thông tin về VPS Linux/Windows cũng như để đăng ký sử dụng dịch vụ.