Lệnh file trong Linux

Giới thiệu

Trong lab này, chúng ta sẽ khám phá lệnh file của Linux và học cách xác định các loại file khác nhau, bao gồm file văn bản, file nhị phân và file nén. Chúng ta sẽ bắt đầu bằng cách sử dụng lệnh file để xác định loại của nhiều file khác nhau, sau đó chuyển sang xử lý các file nén.

Lệnh file là một công cụ linh hoạt có thể được sử dụng để xác định loại của một file dựa trên nội dung của nó, ngay cả khi phần mở rộng của file không khớp với loại file thực tế. Điều này có thể đặc biệt hữu ích khi làm việc với các loại file không xác định hoặc bất thường.

Khám phá lệnh file

Trong bước này, chúng ta sẽ khám phá lệnh file linh hoạt trong Linux. Lệnh file được sử dụng để xác định loại của một file, cho dù đó là file văn bản, file thực thi hay file nhị phân.

Hãy bắt đầu bằng cách chạy lệnh file trên một vài file khác nhau:

cd ~/project
file README.md
file Dockerfile
file example.zip

Ví dụ đầu ra:

README.md: Markdown document, UTF-8 text
Dockerfile: ASCII text
example.zip: Zip archive data, at least v2.0 to extract

Như bạn có thể thấy, lệnh file cung cấp thông tin về loại của mỗi file. Đối với file README.md, nó xác định nó là một tài liệu Markdown. Đối với Dockerfile, nó nhận ra nó là một file văn bản ASCII. Và đối với file example.zip, nó xác định nó là một kho lưu trữ Zip.

Lệnh file cũng có thể được sử dụng để xác định loại của một file dựa trên nội dung của nó, ngay cả khi phần mở rộng của file không khớp với loại file thực tế. Hãy thử một ví dụ:

echo "This is a text file" > example.txt
file example.txt

Ví dụ đầu ra:

example.txt: ASCII text

Mặc dù phần mở rộng của file là .txt, lệnh file vẫn xác định chính xác nó là một file văn bản ASCII.

Lệnh file là một công cụ mạnh mẽ để hiểu nội dung của các file trên hệ thống của bạn. Nó có thể đặc biệt hữu ích khi làm việc với các loại file không xác định hoặc bất thường.

Xác định các loại file

Trong bước này, chúng ta sẽ học cách sử dụng lệnh file để xác định các loại file khác nhau, bao gồm file văn bản, file nhị phân và file nén.

Hãy bắt đầu bằng cách tạo một số file mẫu:

cd ~/project
echo "This is a text file" > text_file.txt
dd if=/dev/urandom of=binary_file.bin bs=1M count=1 > /dev/null 2>&1
gzip text_file.txt

Bây giờ, hãy sử dụng lệnh file để xác định các loại file:

file text_file.txt
file binary_file.bin
file text_file.txt.gz

Ví dụ đầu ra:

text_file.txt: ASCII text
binary_file.bin: data
text_file.txt.gz: gzip compressed data, was "text_file.txt", last modified: Tue Apr 18 12:34:56 2023, max compression

Như bạn có thể thấy, lệnh file xác định chính xác text_file.txt là một file văn bản ASCII, binary_file.bin là một file dữ liệu nhị phân và text_file.txt.gz là một file được nén bằng gzip.

Lệnh file cũng có thể cung cấp thông tin chi tiết hơn về nội dung của một file. Ví dụ, hãy thử nó trên một file nén:

file -z text_file.txt.gz

Ví dụ đầu ra:

text_file.txt.gz: gzip compressed data, was "text_file.txt", last modified: Tue Apr 18 12:34:56 2023, max compression

Tùy chọn -z yêu cầu lệnh file xem bên trong các file nén và cung cấp thông tin về file gốc.

Hiểu cách sử dụng lệnh file để xác định các loại file khác nhau là một kỹ năng thiết yếu để làm việc với các file trong môi trường Linux.

Xử lý các file nén

Trong bước này, chúng ta sẽ học cách làm việc với các file nén bằng lệnh file và các tiện ích Linux khác.

Đầu tiên, hãy tạo một file nén:

cd ~/project
tar -czf archive.tar.gz text_file.txt binary_file.bin

Bây giờ, hãy sử dụng lệnh file để xác định file nén:

file archive.tar.gz

Ví dụ đầu ra:

archive.tar.gz: gzip compressed data, last modified: Tue Apr 18 12:34:56 2023, max compression

Lệnh file xác định chính xác file archive.tar.gz là một file nén gzip.

Để giải nén nội dung của file nén, chúng ta có thể sử dụng lệnh tar:

tar -xzf archive.tar.gz
ls -l

Ví dụ đầu ra:

total 2048
-rw-r--r-- 1 labex labex     20 Apr 18 12:34 binary_file.bin
-rw-r--r-- 1 labex labex     19 Apr 18 12:34 text_file.txt

Lệnh tar -xzf giải nén nội dung của file archive.tar.gz và chúng ta có thể thấy các file đã giải nén binary_file.bintext_file.txt.

Linux cũng cung cấp các công cụ khác để làm việc với các file nén, chẳng hạn như gzipgunzip để xử lý các file được nén bằng gzip và unzip để xử lý các kho lưu trữ ZIP. Hãy thử sử dụng gunzip để giải nén file text_file.txt.gz mà chúng ta đã tạo trước đó:

gunzip text_file.txt.gz
file text_file.txt

Ví dụ đầu ra:

text_file.txt: ASCII text

Lệnh gunzip giải nén file text_file.txt.gz và lệnh file xác nhận rằng file đã giải nén là một file văn bản ASCII.

Hiểu cách làm việc với các file nén là một kỹ năng thiết yếu để quản lý các file và dữ liệu trong môi trường Linux.

Tóm tắt

Trong lab này, chúng ta đã khám phá lệnh file linh hoạt trong Linux, được sử dụng để xác định loại của một file. Chúng ta đã học cách sử dụng lệnh file để xác định các loại file khác nhau, bao gồm file văn bản, file nhị phân và file nén. Lệnh file có thể cung cấp thông tin có giá trị về nội dung của một file, ngay cả khi phần mở rộng của file không khớp với loại file thực tế. Chúng ta cũng đã thực hành tạo các file mẫu và sử dụng lệnh file để phân tích các loại của chúng. Lab này đã trang bị cho chúng ta sự hiểu biết tốt hơn về lệnh file và các ứng dụng thực tế của nó trong việc làm việc với các loại file khác nhau trên hệ thống Linux.

400+ câu lệnh phổ biến trong Linux