كيفية تحديد نوع الملف من الملفات باستخدام لينكس

ينظر معظم الأشخاص إلى امتداد الملف ثم يخمنون نوع الملف من ذلك الامتداد. على سبيل المثال ، عندما ترى ملفًا به امتداد gif أو jpg أو bmp أو png ، فستفكر في ملف صورة وعندما ترى ملفًا به امتداد zip ، يجب افتراض أن الملف قد تم ضغطه باستخدام أداة ضغط zip .

في الحقيقة ، يمكن أن يكون للملف امتدادا واحدا ولكن يكون شيئا مختلفا تماما وإذا لم يكن للملف امتدادا كيف يمكنك تحديد نوع الملف؟

في Linux ، يمكنك معرفة نوع الملف الحقيقي باستخدام الأمر file.

كيف يعمل أمر الملف

وفقًا للوثائق ، يعمل أمر الملف على تنفيذ ثلاث مجموعات من الاختبارات ضد ملف:

تؤدي أول مجموعة من الاختبارات لإرجاع استجابة صالحة إلى تطبع نوع الملف.

تفحص اختبارات نظام الملفات العائد من استدعاء النظام الأساسي. يتحقق البرنامج لمعرفة ما إذا كان الملف فارغًا وما إذا كان ملفًا خاصًا. إذا تم العثور على نوع الملف في ملف رأس النظام ، فسيتم إرجاعه كنوع ملف صالح.

الاختبارات السحرية بالتحقق من محتويات ملف وعلى وجه التحديد عدد قليل من وحدات البايت في البداية والتي تساعد على تحديد نوع الملف. هناك العديد من الملفات التي تستخدم للمساعدة في مطابقة ملف مع نوع الملف الخاص به ويتم تخزينها في / etc / magic، / usr / share / misc / magic.mgc، / usr / share / misc / magic. يمكنك تجاوز هذه الملفات عن طريق وضع ملف في مجلد منزلك باسم $ HOME / .magic.mgc أو $ HOME / .magic.

الاختبارات النهائية هي اختبارات اللغة. يتم فحص الملف لمعرفة ما إذا كان ملفًا نصيًا أم لا. باختبار البايتات القليلة الأولى من الملف ، يمكنك استنتاج ما إذا كان ASCII أو UTF-8 أو UTF-16 أو في تنسيق آخر يحدد الملف كملف نصي. بمجرد أن يتم استنتاج مجموعة الأحرف يتم اختبار الملف مقابل لغات مختلفة. على سبيل المثال هو برنامج ac الملف.

إذا كان أي من الاختبارات يعمل الناتج هو ببساطة البيانات.

كيفية استخدام قيادة الملف

يمكن استخدام الأمر file كما يلي:

ملف اسم الملف

على سبيل المثال ، تخيل أن لديك ملفًا باسم file1 ، يمكنك تشغيل الأمر التالي:

ملف file1

سيكون الإخراج شيء من هذا القبيل:

file1: PNG image data، 640 x 341، 8-bit / color RGB، non-interlaced

يحدد المخرجات المعروضة الملف 1 ليكون ملف صورة أو ليكون أكثر دقة ملف رسوم الشبكة المحمولة (PNG).

تنتج أنواع الملفات المختلفة نتائج مختلفة كما يلي:

تخصيص الإخراج من قيادة الملف

بشكل افتراضي ، يوفر أمر الملف اسم الملف ثم كل التفاصيل الموجودة فوق الملف. إذا كنت تريد فقط التفاصيل دون تكرار اسم الملف ، استخدم المفتاح التالي:

الملف -b file1

سيكون الإخراج شيء من هذا القبيل:

بيانات صورة PNG ، 640 x 341 ، 8 بت / ألوان RGB ، غير متشابكة

يمكنك أيضًا تغيير المعلمة بين اسم الملف والنوع.

بشكل افتراضي ، المحدد هو النقطتين (:) ولكن يمكنك تغييره إلى أي شيء تريده مثل رمز توجيه الإخراج كما يلي:

file -F '|' FILE1

سيكون الإخراج الآن شيء من هذا القبيل:

FILE1 | بيانات صورة PNG ، 640 x 341 ، 8 بت / ألوان RGB ، غير متشابكة

التعامل مع ملفات متعددة

بشكل افتراضي ، ستستخدم أمر الملف مقابل ملف واحد. ومع ذلك ، يمكنك تحديد اسم ملف يحتوي على قائمة الملفات التي سيتم معالجتها بواسطة الأمر file:

كمثال فتح ملف يسمى testfiles باستخدام محرر nano وإضافة هذه الخطوط إليها:

قم بحفظ الملف وتشغيل الأمر التالي:

ملف -f testfiles

سيكون الإخراج شيء من هذا القبيل:

/ etc / passwd: نص ASCII
/etc/pam.conf: نص ASCII
/ etc / opt: directory

الملفات المضغوطة

بشكل افتراضي عند تشغيل الأمر file مقابل ملف مضغوط سترى إخراج شيء كالتالي:

file.zip: بيانات أرشيف ZIP ، على الأقل V2.0 لاستخراج

بينما يخبرك هذا بأن الملف عبارة عن ملف أرشيف لا تعرف محتويات الملف بالفعل. يمكنك البحث داخل الملف المضغوط لمشاهدة أنواع ملفات الملفات الموجودة داخل الملف المضغوط.

يقوم الأمر التالي بتشغيل الأمر file ضد الملفات الموجودة داخل ملف ZIP:

ملف اسم الملف -z

سيعرض المخرج الآن أنواع ملفات الملفات داخل الأرشيف.

ملخص

بشكل عام ، سيستخدم معظم الأشخاص ببساطة أمر الملف للعثور على نوع الملف الأساسي ولكن لمعرفة المزيد حول كل الإمكانيات التي يوفرها الأمر file ، اكتب ما يلي في نافذة الجهاز:

ملف رجل