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.bin
và text_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ư gzip
và gunzip
để 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.