2011-08-29 28 views
20

Lệnh unix file sử dụng cơ sở dữ liệu tệp "ma thuật" để xác định loại tệp dữ liệu nào, độc lập với tên hoặc tiện ích của tệp.Cách tạo cơ sở dữ liệu tệp ma thuật tùy chỉnh

Tôi cần phải tạo cơ sở dữ liệu ma thuật tùy chỉnh cho mục đích thử nghiệm, nhưng tôi không tìm được cách tạo.

Trả lời

14

Bạn có thể man magic để biết mô tả về cách tạo tệp ma thuật của riêng bạn. Sau đó, sử dụng file -C -m <your magic file> để biên dịch và file -m <your magic file> để sử dụng.

+0

nếu bạn có đặc quyền gốc, bạn có thể chỉnh sửa ma thuật hoặc magic.mime khi cần thay vì tạo một tệp mới – yitwail

+0

một lần nữa như thế nào để trợ giúp? Nếu nó có trong sách hướng dẫn, bạn có thể đưa ra một ví dụ không? –

+0

@PauloNeves các chi tiết của cú pháp không phải là tầm thường, như trang người đàn ông (hoặc một [liên kết đến nó] (https://linux.die.net/man/5/magic)) là tốt hơn nhiều. Một thử nghiệm so sánh dữ liệu bắt đầu từ một offset cụ thể trong tệp với giá trị byte, một chuỗi hoặc một giá trị số. bao gồm các trường sau: offset, type, test, message ". cweiske có một ví dụ như một câu trả lời dưới đây. –

5

Trong bài viết này: https://linux.die.net/man/1/file (hoặc man file)

tìm kiếm magic.mgc cho lời giải thích

Thông tin nhận dạng những tập tin được đọc từ file /usr/share/file/magic.mgc ma thuật biên soạn hoặc /usr/share/file/magic nếu tệp biên dịch không tồn tại. Ngoài ra, tệp sẽ xem trong $ HOME/.magic.mgc hoặc $HOME/.magic cho các mục nhập ma thuật.

+1

Điều này giúp áp phích tạo cơ sở dữ liệu ma thuật tùy chỉnh như thế nào? – Gray

1

Tôi đang sử dụng tập tin kỳ diệu sau đây ngay bây giờ để kiểm tra đơn vị của tôi:

0  search/1/c  =<?php     PHP script text 
!:mime text/x-unittest 

Với nó, tất cả các file php (bắt đầu với <?php) sẽ nhận được các loại MIME text/x-unittest.

Các vấn đề liên quan