البحث في الموقع
المحتوى عن 'أوامر لينكس'.
-
سنتعلم في هذا المقال كيف نقوم بضغط الملفات وإنشاءها واستخراجها من ملفات tar المضغوطة. إذا كنت أحد مستخدمي البرامج مفتوحة المصدر، فغالبًا ما صادفت ملفات من نوع tar. يعود تاريخ انشاء أداة الأرشفة مفتوحة المصدر tar إلى العام 1979، لذا فهي واسعة الانتشار في عالم POSIX. هدفها بسيط: أخذ ملف أو مجموعة من الملفات وتغليفها في ملف واحد، يدعى أرشيف أشرطة التسجيل tar archive. وقد سمي بذلك لأنه عندما تم اختراع tar كان يستخدم لتخزين البيانات على أشرطة التسجيل. من يتعرف على صيغة tar حديثا فسوف يقوم بتشبيهها بملفات zip.، لكن على عكسها فعليا ملفات tar ليست مضغوطة. صيغة tar تقوم فقط بإنشاء حاوية للملفات، لكن يمكننا ضغط الملفات باستخدام أدوات أخرى. طرق الضغط الشائعة التي تطبق على ملف tar. هي Gzip وbzip2، وxz. هذا هو سبب ندرة مصادفتك لملف بصيغة tar. فقط وعادة ما تصادف الملفات بالصيغ الشائعة tar.gz. أو tgz. تثبيت الأمر tar سيكون الأمر tar على لينكس و BSD و إيلوموس و وحتى ماك مثبتًا لديك مسبقًا. على ويندوز أسهل طريقة للتعامل مع الملفات من النوع tar. هي عبر تنصيب الأداة 7-Zip المفتوحة المصدر برخصة LGPL. اسم الأداة يوحي أنها أداة للتعامل مع الصيغة zip، لكن يمكنها التعامل أيضا مع ملفات الأرشيف من النوع tar، وتوفر أيضا واجهة أوامر لموجه الأوامر cmd. إذا كنت تريد أداة للتعامل مع tar فقط على ويندوز، فيمكنك تثبيت جنو tar عبر WSL على ويندوز 10 وما فوق عبر Cygwin. إنشاء ملف أرشيف tarball ملفات الأرشيف من النوع tar عادة ما يشار إليها بالاسم tarball، وذلك فقط اختصارًا لاسمها باللغة الإنجليزية، حيث كلمة tarball أقصر من كتابة tar archive، والتي تعني أرشيف tar. إنشاء ملف tar باستخدام واجهة المستخدم المرئية GUI، يحتاج لثلاث خطوات على الأكثر. سنستخدم في مثالنا هذا KDE، العملية ستكون مشابهة على كل من جنوم و XFCE: أنشئ مجلدًا. ضع ملفاتك في ذلك المجلد. اضغط بالزر الأيمن للفأرة على المجلد واختر "ضغط". العملية مشابهة أيضًا في الصَدفَة، لجمع عدة ملفات في ملف أرشيف واحد، ضع ملفاتك في مجلد ثم نفذ الأمر tar، ومرر له اسم ملف الأرشيف الذي تريد إنشاءه ثم المجلد الذي تريد أرشفته: $ tar --create --verbose --file archive.tar myfiles تتميز الأداة tar عن باقي الأوامر عادةً أنها لا تحتاج لوجود إشارة السالب (-) قبل اختصارات الخيارات الممررة لها، مما يتيح للمستخدم اختصار عدة أوامر مقعدة كالتالي: $ tar cvf archive.tar myfiles يمكنك أيضا عدم وضع الملفات في مجلد قبل أرشفتها، لكنها تُعَد عادةً سيئة، لأنه لا أحد تقريبًا يرغب أن يجد خمسين ملفًا فجأة مبعثرين على سطح المكتب لديه بعد فك ضغط ذلك الأرشيف. هذا النوع من ملفات الأرشيف يدعى عادة قنبلة tar أو tarbomb -شبهوا الأمر بعملية رمي قنبلة- وليس ذلك دائما بمعنى سلبي. قنابل tar مفيدة لعمليات الترقيع patching وأدوات تنصيب البرامج؛ فالأمر يعتمد على معرفتك متى تستطيع استخدام تلك الطريقة من عدمه. ضغط ملف الأرشيف عند إنشاء ملف tar فلن تكون الملفات داخله مضغوطة، فهو فقط سيجعل تلك الملفات كتلة واحدة يكون من السهل نقلها معًا. يمكننا لضغط ذلك الملف استدعاء Gzip أو bzip: $ tar --create --bzip2 --file foo.tar.bz2 myfiles $ tar --create --gzip --file foo.tar.gz myfiles من أشيع اللواحق لملفات الأرشيف tar المضغوطة عبر Gzip هي tar.gz. و tgz.، و للملفات المضغوطة عبر bzip هي tar.bz2. و tbz.. استخراج الملفات من الأرشيف إذا كان قد وصل إليك ملف tar من صديقك أو من مشروع برمجي ما، يمكنك استخراج محتوياته إما عبر الواجهة المرئية أو من خلال الصدفة. في الواجهة المرئية قم بالضغط بالزر الأيمن للفأرة على ملف الأرشيف واختر "استخراج". مدير ملفات دولفين Dolphin يوفر ميزة التعرف التلقائي على الملفات المستخرجة من الأرشيف اذا كانت محتواة في مجلد أو يجب إنشاء مجلد حاوي لها. تفيد هذه الميزة في تفادي مشكلة قنابل tar، حيث سينشئ مجلدًا جديدًا سيحوي بداخله كل الملفات المستخرجة. عبر الصدفة، أمر استخراج الملفات من ملف الأرشيف بديهي للغاية: $ tar --extract --file archive.tar.gz يمكنك اختصار الخيارات للأمر السابق كالتالي: $ tar xf archive.tar.gz يمكنك أيضا استخدام أداة tar لفك ضغط ملفات zip.: $ tar --extract --file archive.zip أوامر tar متقدمة أدوات tar قوية وعملية جدًا فحالما تعتاد على المبادئ الأساسية لها، ستبني عليها لاكتشاف مزايا أخرى. إضافة ملف أو مجلد إلى ملف tar في حال كنت تملك ملف tar وتريد إضافة ملف جديد داخله، يمكنك فعل ذلك دون الحاجة لاستخراج محتوياته ثم إعادة أرشفتها فقط لإضافة الملف الجديد. معظم أنظمة سطح مكتب لينكس و BSD تأتي مع واجهة مرئية للتعامل مع ملفات الأرشيف، يمكنك استخدامها والتعامل مع ملف الأرشيف وكأنه مجلد عادي آخر، يمكنك رؤية محتوياته، استخراج ملفات معينة منه، إضافة ملفات جديدة إليه، وحتى استعراض الملفات النصية والصور داخله. أداة الأرشفة آرك Ark عبر الصدفة، يمكنك إضافة ملف أو مجلد إلى ملف أرشيف tar طالما أنه غير مضغوط بعد، إذا كان ملف الأرشيف مضغوطًا يجب عليك أولًا فك ضغطه فقط وليس استخراج ملفات الأرشيف داخله. على سبيل المثال، إذا كان ملف الأرشيف مضغوطًا بواسطة Gzip: $ gunzip archive.tar.gz $ ls archive.tar الآن بعدما أصبح لديك ملف tar غير مضغوط، يمكنك إضافة الملف أو المجلد الجديد إليه: $ tar --append --file archive.tar foo.txt $ tar --append --file archive.tar bar/ اختصارًا يمكن تنفيذ الأمر السابق كالتالي: $ tar rf archive.tar foo.txt $ tar rf archive.tar bar/ مشاهدة قائمة بالملفات داخل ملف tar لمشاهدة الملفات داخل ملف أرشيف، سواء كان مضغوطًا أم لا، يمكنك استخدام الخيار list--: $ tar --list --file archive.tar.gz myfiles/ myfiles/one myfiles/two myfiles/three bar/ bar/four foo.txt النسخة المختصرة تكون كالتالي $ tar tf archive.tar.gz استخراج ملف واحد أو عدة ملفات أو مجلدات من أرشيف tar أحيانًا لا تريد استخراج كل الملفات من الأرشيف، وفقط تريد استخراج ملف واحد أو بضعة ملفات منه. بعد عرضك لمحتويات ملف أرشيف tar، استخدم الأمر tar لفك الضغط كالمعتاد ولكن مع إضافة مسار الملف الذي تريد استخراجه بمفرده: $ tar xvf archive.tar.gz bar/four bar/four الآن تم استخراج الملف "four" إلى مجلد جديد يدعى "bar". إذا كان المجلد "bar" موجود مسبقًا، فسيتم وضع الملف "four" داخله. ولاستخراج عدة ملفات أو مجلدات سننفذ نفس الأمر السابق تقريبًا: $ tar xvf archive.tar.gz myfiles/one bar/four myfiles/one bar/four يمكنك أيضا استخدام المحارف البديلة wildcards: $ tar xvf archive.tar.gz --wildcards '*.txt' foo.txt استخراج الملفات من ملف tar إلى مجلد ذكرنا سابقًا أن بعض ملفات tar هي قنابل tar تترك خلفها بعد استخراج محتوياتها الكثير من الملفات المبعثرة. إذا نظرت لمحتويات ملف tar ولاحظت أن الملفات داخله غير محتواة داخل مجلد، يمكنك تحديد مجلد الوجهة ليتم استخراجها مباشرة إليه: $ tar --list --file archive.tar.gz foo bar baz $ mkdir newfiles $ tar xvf archive.tar.gz -C newfiles الأمر السابق يستخرج محتويات الملف "archive.tar.gs" إلى المجلد الجديد newfiles بشكل مرتب. خيار مجلد الوجهة له فوائد أخرى غير ترتيب الملفات المستخرجة في مجلد واحد، مثلًا لتوزيع الملفات لنسخها في بنية مجلدات موجودة مسبقًا. إذا كنت تعمل على تطوير موقع إلكتروني وتريد إرسال ملفات جديدة لصاحب الموقع، يمكنك القيام بذلك بعدة طرق. الطريقة البديهية هي إرفاق تلك الملفات داخل بريد إلكتروني وإرسالها له مع شرح عن مكان نسخ كل من تلك الملفات: "ملف index.php المرفق يجب وضعه داخل المجلد /var/www/example.com/store، والملف vouchers.php يجب وضعه داخل /var/www/example.com/deals... ". الطريقة الأجدى لتنفيذ ذلك تكون بإنشاء أرشيف tar لهذه الملفات: $ tar cvf updates-20170621.tar.bz2 var var/www/example.com/store/index.php var/www/example.com/deals/voucher.php var/www/example.com/images/banner.jpg var/www/example.com/images/badge.jpg var/www/example.com/images/llama-eating-apple-pie.gif متضمنة بنية المجلدات والملفات داخلها، الآن ليس على صاحب الموقع سوى استخراج الملفات من ملف الأرشيف مباشرة داخل مجلد الجذر على خادمه. أداة tar تتحقق من تواجد المجلد var/www/example.com/ وكذلك المجلدات داخله store و deals و images، وتقوم بتوزيع الملفات في مجلداتها المناسبة. يمكن اعتبار هذه الطريقة نسخ ولصق لكن بسرعة وبسهولة. الفرق بين نسخة tar من جنو ومن BSD تنسيق tar هو مجرد تنسيق، وهو مفتوح المصدر، لهذا السبب يمكن لعدة أدوات أن تقوم بإنشائه. هناك أداتي tar شائعتين: أداة جنو tar، والتي تأتي مثبتة افتراضيًا على بعض أنظمة لينكس، وأداة tar التابعة لأنظمة BSD، والمثبتة بشكل افتراضي على BSD، ماك، وبعض أنظمة لينكس الأخرى. للاستخدام العام، كلا الإصدارين سيكون كافيًا. كل الأمثلة المذكورة في هذا المقال ستعمل على كلا الإصدارين. لكن هناك اختلافات بسيطة بينهما. حالما تعتاد على واحدة منهما يمكنك تجربة الأخرى, غالبًا ستحتاج لتثبيت الإصدار "الآخر" من الأمر tar يدويًا. لتفادي الخلط بين الأداتين، أداة جنو tar تسمى gtar وأداة BSD tar تسمى bsdtar، على أن يكون الأمر tar هو وصلة رمزية أو اسم بديل لأحد تلك الأداتين المثبتة مسبقا على جهازك. ترجمة -وبتصرف- للمقال How to unzip a tar.gz file لصاحبه Seth Kenlon. اقرأ أيضًا احترف الأمر ls في لينكس ما الفروق بين الأوامر grep وegrep fgrep مدخل إلى الأمر ss في لينكس كيف تستخدِم أمرَي find و locate للبحث عن الملفّات على Linux النسخة الكاملة من كتاب أنظمة التشغيل للمبرمجين
-
يمتلك الأمر ls في لينكس العديد من الخيارات الرائعة التي ستعطيك معلومات مهمة عن ملفاتك. الأمر ls يقوم بعرض قائمة بالملفات على أنظمة POSIX وهو أمر سهل وبسيط، عادة ما يقلل من شأنه لأن مهمته بسيطة (فهو فعليًا يفعل مهمة واحدة فقط)، ولكن يمكنك تعديل استخدامك له لتحصل على الكثير منه. من بين أهم أوامر لينكس التي يجب أن تعرفها، يحتل الأمر ls المرتبة الثالثة ربما بينها، لأن الأمر ls ليس فقط يعرض قائمة بالملفات، بل أيضا يعرض لك معلومات مهمة عنها. مثل من يملك الملف أو المجلد، متى تم تعديل الملف آخر مرة، وحتى نوع الملف، وهو أمر مهم يبيّن لك أين تقف الآن وما الملفات والأغراض المتاحة في المسار الحالي وماذا يمكنك أن تفعل بهم. إذا كانت خبرتك مع الأمر ls مقتصرة على الاسم البديل لهذا الأمر التي يأتي جاهزًا مع توزيعتك في ملف bashrc.، فربما فاتك الكثير. جنو أو BSD؟ قبل أن نلقي نظرةً على خفايا الأمر ls، يجب أن تحدد أي إصدار من ls لديك. أشهر إصدارين هما إصدار جنو، الذي يأتي ضمن حزمة coreutils ضمن جنو، وإصدار BSD. إذا كنت تعمل على لينكس، فعلى الأغلب الأمر ls مثبت لديك أما إذا كنت تعمل على BSD أو نظام ماك، فأنت تملك نسخة إصدار BSD فهناك فروقات، سنغطيها في هذا المقال. يمكنك معرفة النسخة التي لديك باستخدام الخيار version--: $ ls --version إذا كان الخرج يحتوي على معلومات عن حزمة coreutils الخاصة بجنو، فلديك الإصدار الخاص بجنو، أما إذا ظهر لك خطأ فأنت تملك نسخة BSD (يمكنك تنفيذ الأمر man ls | head للتأكد). يجب عليك التحقق أيضا من الإعدادات المسبقة التي قد تأتي مع توزيعتك. التخصيصات في الأوامر عادة تكون موجودة داخل الملف HOME/.bashrc$ أو HOME/.bash_aliases$ أو داخل HOME/.profile$، وعادة تكون موجودة لإعطاء اسم بديل للأمر ls يتضمن خصائص أكثر تعقيدًا، مثال: alias ls='ls --color' التخصيصات التي تأتي مع التوزيعة مفيدة، ولكن تجعل من الصعب التمييز بين عمل الأمر ls بمفرده وما تقدمه الخيارات الإضافية من مزايا. إذا كنت تريد تنفيذ الأمر ls بمفرده وتجاهل أي تسمية بديلة يمكنك استخدام محرف الهروب الخط المائل العكسي (\) قبل الأمر: $ \ls التصنيف عند تنفيذ الأمر ls بمفرده سيعرض قائمة بالملفات موزعة على أعمدة بقدر العرض المتوفر على الطرفية لديك: $ ls ~/example bunko jdk-10.0.2 chapterize otf2ttf.ff despacer overtar.sh estimate.sh pandoc-2.7.1 fop-2.3 safe_yaml games tt المعلومات التي ستظهر مفيدة، لكن بدون رموز تفيد التمييز بين أنواع الملفات (مجلد - ملف نصي - صورة - الخ…) فلن تفيدنا كثيرًا. يمكنك استخدام الخيار F- (أو classify-- في نسخة جنو) لعرض رمز بعد كل اسم ملف لتمييز نوعه: $ ls ~/example -F bunko jdk-10.0.2/ chapterize* otf2ttf.ff* despacer* overtar.sh* estimate.sh pandoc@ fop-2.3/ pandoc-2.7.1/ games/ tt* الرموز بعد أسماء الملفات تدل على نوع الملف، وتحمل الدلالات التالية: خط مائل عكسي (/) يدل على نوع المجلد. محرف النجمة (*) يدل أن الملف تنفيذي. يتضمن ذلك الملفات الثنائية (الشيفرة المصرّفة) وكذلك النصوص البرمجية (الملفات النصية التي تملك صلاحية التنفيذ). المحرف (@) يدل على وصلة رمزية (أو اسم بديل). محرف المساواة (=) يدل على مقبس. على BSD، محرف إشارة النسبة المئوية (%) يدل على أن الملف مشار إليه كمحذوف whiteout (وهي طريقة لحذف الملفات على بعض الأنظمة). على جنو، محرف إشارة الأصغر (<) يدل على باب (طريقة للتواصل بين الإجرائيات على ايلوموس و سولاريس) محرف الخط العمودي (|) يدل على FIFO. نسخة أبسط من هذا الخيار هي p-، وهي تبيّن فقط الفرق بين الملفات والمجلدات. عرض قائمة تفاصيل طويلة نحتاج في كثير من الأحيان إلى عرض تفاصيل أكثر عن الملفات من خرج الأمر ls، لذا العديد من التوزيعات تُعِّين اسمًا بديلا على شكل ll تكون قيمته ls -l. تعرض القائمة الطويلة العديد من الخصائص المهمة لنا مثل الصلاحيات، المستخدم مالك الملف، المجموعة التي ينتمي إليها الملف، حجم الملف بالبايت، وتاريخ آخر تعديل على الملف: $ ls -l -rwxrwx---. 1 seth users 455 Mar 2 2017 estimate.sh -rwxrwxr-x. 1 seth users 662 Apr 29 22:27 factorial -rwxrwx---. 1 seth users 20697793 Jun 29 2018 fop-2.3-bin.tar.gz -rwxrwxr-x. 1 seth users 6210 May 22 10:22 geteltorito -rwxrwx---. 1 seth users 177 Nov 12 2018 html4mutt.sh [...] إذا كانت وحدة البايت مربكة لك، أضف الخيار h- (أو الخيار human-- على جنو) ليتم ترجمة الحجوم الى صيغة مقروءة بشكل أفضل: $ ls --human -rwxrwx---. 1 seth users 455 Mar 2 2017 estimate.sh -rwxrwxr-x. 1 seth seth 662 Apr 29 22:27 factorial -rwxrwx---. 1 seth users 20M Jun 29 2018 fop-2.3-bin.tar.gz -rwxrwxr-x. 1 seth seth 6.1K May 22 10:22 geteltorito -rwxrwx---. 1 seth users 177 Nov 12 2018 html4mutt.sh يمكنك تخفيف المعلومات الظاهرة عبر إظهار فقط عمود مالك الملف باستخدام الخيار o- أو فقط عمود المجموعة المالكة للملف عبر الخيار g-: $ ls -o -rwxrwx---. 1 seth 455 Mar 2 2017 estimate.sh -rwxrwxr-x. 1 seth 662 Apr 29 22:27 factorial -rwxrwx---. 1 seth 20M Jun 29 2018 fop-2.3-bin.tar.gz -rwxrwxr-x. 1 seth 6.1K May 22 10:22 geteltorito -rwxrwx---. 1 seth 177 Nov 12 2018 html4mutt.sh يمكنك دمج الخيارين لإخفاء كلا العمودين. صيغة الوقت والتاريخ صيغة قائمة التفاصيل الطويلة للأمر ls تكون عادةً على الشكل التالي: -rwxrwx---. 1 seth users 455 Mar 2 2017 estimate.sh -rwxrwxr-x. 1 seth users 662 Apr 29 22:27 factorial -rwxrwx---. 1 seth users 20697793 Jun 29 2018 fop-2.3-bin.tar.gz -rwxrwxr-x. 1 seth users 6210 May 22 10:22 geteltorito -rwxrwx---. 1 seth users 177 Nov 12 2018 html4mutt.sh لا يمكن ترتيب أسماء الشهور بهذه الصيغة بسهولة، لا حسابيا (حسب اذا كنت تفضل أسماء الشهور أو رقم يدل على ترتيبها) ولا إدراكيًا. يمكنك تغيير صيغة عرض العلامة الزمنية عبر الخيار time-style-- إضافة إلى اسم الصيغة. الصيغ المتاحة هي: (1970-01-01 21:12:00) full-iso. long-iso (1970-01-01 21:12). iso (01-01 21:12). locale (سيتم استخدام إعداداتك المحلية). posix-STYLE (بدل كلمة STYLE بالمعرّف المحلي). يمكنك أيضا إنشاء صيغة مخصصة مماثلة للصيغ التي يدعمها الأمر date. الترتيب بحسب الوقت يرتب الأمر ls القائمة افتراضيًا حسب الترتيب الأبجدي. يمكنك تغيير الترتيب إلى الترتيب بحسب الوقت الذي تم فيه تعديل الملفات آخر مرة (الأحدث أولًا) باستخدام الخيار t-: $ touch foo bar baz $ ls bar baz foo $ touch foo $ ls -t foo bar baz نوع القائمة الخرج القياسي للأمر ls يوازن بين قابلية القراءة والتوفير في المساحة، لكن أحيانا تحتاج أن تكون قائمة الملفات بترتيب معين. ولتحديد تنسيق القائمة ليكون عناصر وبينها فاصلة، نستخدم الخيار m-: ls -m ~/example bar, baz, foo لإجبار وضع العناصر بحيث يكون كل ملف بسطر، نستخدم الخيار 1- (رقم واحد وليس حرف L صغير): $ ls -1 ~/bin/ bar baz foo لترتيب العناصر حسب اللاحقة لكل ملف وليس حسب اسم الملف، نستخدم الخيار X-: $ ls bar.xfc baz.txt foo.asc $ ls -X foo.asc baz.txt bar.xfc إخفاء الملفات من الخرج التي قد لا تحتاج لرؤيتها هناك بعض العناصر في خرج الأمر ls التي قد لا تهتم لرؤيتها، مثل المحارف الوصفية . و .. التي تدل على "المسار الحالي" و "مستوى واحد للخلف" على التوالي. اذا كان لديك معرفة بكيفية التنقل بين المجلدات داخل الطرفية، فأنت تعلم أن كل مسار يشير إلى نفسه كـ . وللمسار الأب كـ ..، لذ قد لا تحتاج لرؤية تلك الدلالات في كل مرة تستخدم بها الخيار a- لعرض الملفات المخفية. لعرض تقريبا كل الملفات المخفية (ما عدا . و ..) يمكنك استخدام A-: $ ls -a . .. .android .atom .bash_aliases [...] $ ls -A .android .atom .bash_aliases [...] هناك عُرف في العديد من أدوات يونكس أن يتم حفظ ملفات النسخ الاحتياطي باسم ملف متبوع بمحرف مميز ما. على سبيل المثال المحرّر Vim، يقوم بحفظ ملفات النسخ الاحتياطية باسم متبوع بالمحرف ~ . هذه الملفات ستنقذك في الكثير من المرات، لكن قد لا تحتاج لرؤيتها دومًا داخل قائمة الملفات، لإخفائها يمكنك استعمال الخيار B- أو igonre-backups-- وسيقوم الأمر ls بإخفاء ملفات النسخ الاحتياطي ذات اللواحق المشهورة (هذا الخيار غير متوفر في إصدار BSD للأمر ls): $ ls bar.xfc baz.txt foo.asc~ foo.asc $ ls -B bar.xfc baz.txt foo.asc ملفات النسخ الاحتياطي لازالت موجودة، فقط تم إخفائها من قائمة الملفات. جنو إيماكس GNU Emacs يحفظ ملفات نسخ احتياطي (إلا إذا تم تغيير إعدادات ذلك) عبر وضع محرف المربع # قبل وبعد اسم الملف. تطبيقات أخرى أيضا ستستخدم صيغ أخرى لأسماء الملفات تلك. لذا يمكنك تحديد نمط مخصص لاسم الملفات التي تود إخفاءها من الخرج عبر الخيار hide--: $ ls bar.xfc baz.txt #foo.asc# foo.asc $ ls --hide="#*#" bar.xfc baz.txt foo.asc عرض محتويات المجلدات لن يعرض الأمر ls محتويات المجلدات إلا إذا حددت له مجلدًا معينًا لعرض محتوياته، لذلك يمكنك استخدام الخيار R- لعرض شجرة محتويات كل المجلدات: $ ls -F example/ quux* xyz.txt $ ls -R quux xyz.txt ./example: bar.xfc baz.txt #foo.asc# foo.asc تبسيط استخدام الخيارات المكررة عبر الاسم البديل ربما يكون الأمر ls من أكثر الأوامر استخداما خلال الجلسة الواحدة. فهو كعينيك وأذنيك، يوضح لك السياق الحالي ويؤكد لك نتيجة وجود الملفات من عدمها وبينما يحتوي على الكثير من المزايا فهو سهل الاستخدام للغاية، حرفان فقط وزر Enter، وستعلم تماما أين أنت وماذا يوجد حولك، قد تعتاد على هذه البساطة وتنسى الاستفادة من خياراته المفيدة. الحل يكون بتحديد اسم بديل للأمر ls يتضمن الخيارات التي توفر لك المعلومات التي تحتاجها دومًا. لتعيين اسم بديل في جلسة باش Bash، أنشئ ملفًا في مجلد المنزل لحسابك بالاسم bash_aliases. (يجب وضع النقطة في بداية اسم الملف). في هذا الملف حدد قائمة الأوامر التي تريد تعيين اسمًا بديلا لها ثم قيمة هذا الاسم البديل. مثال: alias ls='ls -A -F -B --human --color' السطر السابق يجعل صدفة باش تترجم الأمر ls الى ls -A -F -B --human --color. ولست مقيدًا بتعيين أسماء بديلة للأوامر المتوفرة فقط. بل يمكنك إنشاء أسماء بديلة خاصة بك: alias ll='ls -l' alias la='ls -A' alias lh='ls -h' لكي تُفعّل تلك الأسماء البديلة، يجب على الصدفة أن تعلم بوجود ملف الإعدادات bash_aliases.. قم بفتح الملف bashrc. في محرر النصوص (أو قم بإنشائه، إن لم يكن موجودًا)، وضع داخله الشيفرة التالية: if [ -e $HOME/.bash_aliases ]; then source $HOME/.bash_aliases fi في كل مرة سيحمّل الملف bashrc. (أي في كل مرة سيتم فيها إنشاء جلسة صدفة جديدة)، سيقوم باش بتحميل الملف bash_aliases. إلى البيئة الحالية. يمكنك إغلاق وإعادة فتح الجلسة الحالية لتفعيل ذلك أو يمكنك إجبار تحميل الإعدادات عبر تنفيذ الأمر: $ source ~/.bashrc إذا نسيت بعد فترة ما إذا كنت قد قمت بتعيين اسم بديل لأمر ما أم لا، الأمر which سيخبرك بذلك: $ which ls alias ls='ls -A -F -B --human --color' /usr/bin/ls إذا كنت قد حددت اسما بديلا للأمر ls قيمته هو الأمر نفسه مع بضعة خيارات أخرى. وتريد تنفيذ الأمر بمفرده وتجاهل الاسم البديل المعين له يمكنك إسباق الأمر بمحرف الخط المائل العكسي (\). مثلا في الاسم البديل السابق استخدمنا الخيار B- لإخفاء ملفات النسخ الاحتياطي من الخرج، أما في حال أردت مشاهدة تلك الملفات وتجاهل الاسم البديل ينفذ الأمر كالتالي: $ ls bar baz foo $ \ls bar baz baz~ foo ختاما يحوي الأمر ls العديد من الخيارات المفيدة، العديد منها متخصصة بحالة معينة أو تعتمد على نوع الطرفية التي تستخدمها. يمكنك القراءة ومعرفة المزيد من الخيارات بتنفيذ الأمر info ls على أنظمة جنو، أو man ls على أنظمة جنو و BSD. قد تجد من الغريب على نظام شعاره الأساسي هو "قم بعمل واحد، وقم به جيدًا" أن يثقل أمرا واحدا بخمسين خيار. لكن حقيقةً أن الأمر ls يقوم بشيء واحد فقط: يظهر قائمة بالملفات. والخمسين خيار المتوفرين سيمكنوك من تحديد كيف تريد هذه القائمة، بالفعل ls يقوم بعمل واحد ويقوم به جيدًا. ترجمة -وبتصرف- للمقال Master the Linux ls command لصاحبه Seth Kenlon. اقرأ أيضًا ما الفروق بين الأوامر grep وegrep fgrep مدخل إلى الأمر ss في لينكس مقدمة إلى أمر tar في لينكس كيف تستخدِم أمرَي find و locate للبحث عن الملفّات على Linux النسخة الكاملة من كتاب أنظمة التشغيل للمبرمجين