tệp (1) và ma thuật (5): mô tả các định dạng khác


8

Tôi có thể sử dụng filemagic( http://linux.die.net/man/5/magic ) để ghi đè mô tả của một số định dạng đã biết khác không?

ví dụ, tôi muốn mô tả các định dạng sau:

đó là tập tin văn bản 'chỉ'

Hoặc là

đó là 'chỉ' một tập tin được nén bằng số bắt đầu bằng số ma thuật BAM\1

?

bạn có biết ví dụ nào không?

Có thể cung cấp mã C tùy chỉnh để kiểm tra tệp thay vì sử dụng định dạng ma thuật không?


Câu trả lời:


8

Bạn có thể sử dụng -mtùy chọn để chỉ định danh sách các tệp ma thuật thay thế và nếu bạn bao gồm danh sách của riêng mình trước tệp ma thuật đã biên dịch ( /usr/share/file/magic.mgctrên hệ thống của tôi) trong danh sách đó, các mẫu đó sẽ được kiểm tra trước các tệp "toàn cầu". Bạn có thể tạo một hàm hoặc bí danh để luôn luôn sử dụng tùy chọn đó một cách trong suốt bằng cách chỉ cần ban hành filelệnh.

Ngôn ngữ được sử dụng trong tệp ma thuật khá mạnh mẽ, do đó hiếm khi cần phải hoàn nguyên về mã hóa C tùy chỉnh. Lần duy nhất tôi cảm thấy khuynh hướng làm việc tương tự là 90 khi kết hợp các file HTML và XML là khó khăn vì không có cách nào (lúc bấy giờ) để có vỏ mềm dẻo và bù đắp phù hợp cần thiết để có thể phân tích <HTML< Html< htmlvới một mô hình . Tôi đã triển khai rằng trong C là công cụ sửa đổi cho mẫu 'chuỗi', cho phép bỏ qua trường hợp và nén các khoảng trống (tùy chọn) .

Những thay đổi trong C cũng yêu cầu điều chỉnh các tệp ma thuật . Và trừ khi filemã nguồn đã thay đổi đáng kể kể từ đó, bạn sẽ luôn cần sửa đổi (hoặc cung cấp thêm) quy tắc trong magiccác tệp khớp với các thay đổi mã C đó. Vì vậy, bạn cũng có thể bắt đầu thử làm điều đó chỉ với các thay đổi đối với các tệp ma thuật và quay lại thay đổi mã C nếu điều đó thực sự không hiệu quả.


Cảm ơn bạn, repo github với các ví dụ rất hữu ích.
Pierre

1

Đối với người dùng $ (user_searchengine) tiếp theo tìm thấy điều này:

Các quy tắc đơn giản như BAM trông giống như thế này:
OFFSET TYPE [OPERAND]FLAG MESSAGE
Trong trường hợp BAM:
0 string BAM\1 BAM
Điều này sẽ in chuỗi BAM khi tìm tiêu đề.

Để biết thêm thông tin, thông tin trang web IBM này có vẻ hơi lỗi thời, nhưng vẫn đủ cho các trường hợp sử dụng đơn giản. Người đàn ông cũng có một loạt các thông tin về định dạng.


0

Bạn không cần phải luôn luôn sử dụng -mtùy chọn; vì tài liệu trong trang của nó file(1)cũng sẽ được đọc theo mặc định ~/.magictệp (hoặc phiên bản được biên dịch của nó ~/.magic.mgc:), vì vậy bạn có thể thêm định nghĩa của mình vào đó; không cần phải gây rối với toàn hệ thống /usr/share/magic*hay /etc/magic.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.