لم يسمع الكثير من مستخدمي لينكس عن pushd
و popd
ولكنها موجودة منذ زمن بعيد. كما يمكنها أيضًا تسريع عملية التنقل بين الدلائل على سطر الأوامر بشكل كبير. وسنوضح لك كيفية استخدامها.
ما هو pushd و popd؟
أحد الابتكارات بيل جوي تم دمجه في عام 1978 ج شل كان مفهوم مجموعة الدليل والوسائل المستخدمة للتعامل معها: pushd
و popd
. التقليد هو أصدق أشكال الإطراء، كومة الدليل، pushd
، و popd
تم دمجها قريبًا في قذائف أخرى (مثل Bash) وحتى أنظمة تشغيل أخرى.
مفهوم المكدس بسيط. يتم وضع العناصر في المكدس واحدًا تلو الآخر، مع احتلال العنصر المضاف حديثًا دائمًا للموضع العلوي. عند استرداد العناصر من المكدس، يتم إزالتها، بالترتيب، من الأعلى إلى الأسفل. غالبًا ما يشار إلى المكدسات من هذا النوع باسم آخر من دخل، أول من خرج طوابير (LIFO).
في الحقيقة، pushd
و popd
تعتبر أكثر مرونة من هذا بقليل، ولكن هذا نموذج جيد يجب وضعه في الاعتبار في الوقت الحالي.
نظرًا لأننا نشير إلى مجموعة من الأدلة، فربما لا يكون من المستغرب أن يكون الحرف “d” في pushd
و popd
تعني كلمة “directory” (الدليل). تتيح لك هذه الأوامر دفع الدلائل إلى مجموعة الدلائل أو إخراجها منها.
ولكن كيف نستفيد من ذلك؟
كيف يقوم pushd بملء المكدس
عندما تستخدم pushd
، تحدث الأشياء الثلاثة التالية:
- يمكنك تغيير الدليل بنفس الطريقة كما لو كنت قد استخدمته
cd
. - تمت إضافة اسم ومسار الدليل إلى المكدس.
- يتم عرض المكدس كقائمة منفصلة بمسافات من الدلائل.
في الأمثلة التالية، لاحظ كيف ينمو كومة الدليل مع كل دليل جديد pushd
لاحظ أيضًا أن الجزء العلوي من المكدس يقع على اليسار، وهذا هو المكان الذي تظهر فيه الإدخالات الجديدة.
بعد الأول pushd
باستخدام الأمر، هناك إدخالان في المكدس: الدليل الذي تركته، والدليل الذي انتقلت إليه.
بالنسبة لمثالنا، نكتب ما يلي:
pushd ~/Desktop
pushd ~/Music
pushd ~/Documents
pushd ~/Pictures
pushd ~
الاخير pushd
أعادنا الأمر إلى دليلنا الرئيسي، لذا فإن الإدخالات الأولى والأخيرة في المكدس هي العلامة (~
)، والذي يمثل دليلنا الرئيسي. يوضح هذا أنه على الرغم من وجود دليل بالفعل في المكدس، فسيتم إضافته مرة أخرى لملفات أخرى pushd
الأوامر.
لاحظ أيضًا أن الإدخال الموجود في أقصى اليسار في المكدس، والذي يُعد الإدخال المُضاف مؤخرًا، هو الدليل الحالي.
الأمر dirs
يمكنك استخدام dirs
الأمر، كما هو موضح أدناه، لعرض كومة الدليل:
dirs
لا يؤثر ذلك على المكدس، بل يعرضه فقط. بعض الخيارات التي يمكنك استخدامها مع pushd
يشير إلى موضع الدلائل في المكدس.
إذا كنت تريد رؤية الموضع الرقمي لكل دليل، يمكنك استخدام -v
(الخيار (العمودي) كما هو موضح أدناه:
توجيهات -v
إذا كنت تفضل رؤية المسار الموضح إلى دليل منزلك بدلاً من العلامة (~
), أضف -l
خيار (التنسيق الطويل)، مثل هذا:
dirs -v -l
إضافة دليل إلى المكدس
كما رأينا، عندما تستخدم pushd
باستخدام الأمر، فإنه يقوم بثلاثة أشياء: تغيير الدليل الخاص بك، وإضافة الدليل الجديد إلى المكدس، وعرض المكدس لك. يمكنك استخدام الأمر -n
(بدون تدوير) خيار لإضافة دليل إلى المكدس دون تغيير الدليل الحالي.
وهنا مجموعة الدليل لدينا:
dirs -v -l
الآن سوف نستخدم pushd
الأمر مع الخيار -n وPas في /home/dave
الدليل كمعلمة. بعد ذلك، سنتحقق من مجموعة الدليل مرة أخرى.
نكتب ما يلي:
pushd -n /home/dave
dirs -v -l
ال /home/dave
تمت إضافة الدليل إلى المكدس في الفتحة 1، وهي المكان الثاني في المكدس. لا يمكنه احتلال الموضع العلوي لأن الفتحة صفر هي دائمًا الدليل الحالي.
لم نترك الدليل الحالي، ~/Videos
، لذلك لم يتم تدويره إلى موضع آخر في المكدس.
تغيير الدليل عن طريق تدوير المكدس
يمكنك استخدام المعلمات الرقمية مع pushd
للانتقال إلى أي دليل في المكدس، ويدور المكدس عند القيام بذلك. يصبح الدليل الذي اخترت نقله هو الإدخال الأول في المكدس.
يمكنك الرجوع إلى الدلائل الموجودة في المكدس من خلال رقم موقعها. يمكنك العد من أعلى أو أسفل المكدس. بالنسبة للأرقام الموجبة، مثل +3، قم بالعد من الأعلى؛ وبالنسبة للأرقام السالبة، مثل -2، قم بالعد من الأسفل.
يقع الدليل /home/dave/Documents في الموضع الثالث. يمكننا استخدام الأمر التالي لنقل هذا الدليل:
pushd +3
يتم نقل الدلائل الموجودة في المكدس أعلى الدليل الذي اخترناه إلى أسفل المكدس. يشغل الدليل الذي اخترناه الآن الموضع العلوي ويتم نقلنا إلى هذا الدليل.
إذا أردنا الانتقال إلى الدليل الموجود في أسفل المكدس، فيمكننا استخدام الأمر التالي:
pushd -0
يتم نقل الدليل الأخير إلى الفتحة الأولى، ويتم نقل جميع المجلدات الأخرى إلى أسفل في المكدس. يتم تغييرنا إلى ~/Pictures
دليل.
الأمر popd
يمكنك استخدام popd
أمر لإزالة الدلائل من المكدس.
إذا نظرنا إلى مجموعة الدليل، يمكننا أن نرى أن الدليل في الموضع 1 هو /home/dave
. لإزالة هذا من المكدس، نكتب ما يلي لتمرير الرقم إلى popd
:
dirs -v -l
popd +1
ال /home/dave
تم إزالة الدليل، وتم نقل تلك التي كانت أسفله في المكدس إلى مكان واحد لأعلى.
كما يمكننا مع pushd
يمكننا العد من أسفل المكدس باستخدام popd
. لإزالة الدليل الأخير من المكدس، نكتب:
popd -0
ال ~/Music
تمت إزالة الدليل من الموضع الأخير في المكدس.
لتغيير الدليل، أو القيام بشيء ما، ثم الرجوع إلى الدليل السابق، يمكنك استخدام pushd
و popd
معاً.
سوف نستخدم pushd
للانتقال إلى دليل مختلف. سوف نستخدم popd
للتخلص من الدليل الأعلى في المكدس والانتقال إلى الدليل في الموضع الثاني. هذا هو الدليل الذي انتقلت منه للتو، لذا ستعود إلى الدليل الذي كنت فيه في الأصل.
نكتب ما يلي:
pushd ~
popd
لقد بدأنا في ~/Projects
دليل، pushd
إلى الدليل الرئيسي، ثم popd
العودة الى ~/Projects
دليل.
التدوير عبر المكدس بأكمله
سنوضح كيفية التدوير عبر كومة تحتوي على بعض الدلائل المتداخلة، ولكن يمكنك استخدام أي دلائل في أي مكان في نظام الملفات.
أعمق مستوى من التعشيش لدينا هو:
/home/dave/Projects/htg/articles
من الدليل الرئيسي، سننتقل تدريجيًا عبر كل دليل حتى نصل إلى دليل المقالات. بعد ذلك، سننظر إلى مجموعة الدليل.
نكتب ما يلي:
pushd ~/Projects
pushd htg
pushd articles
dirs -v -l
عندما تصدر بشكل متكرر pushd +1
باستخدام الأوامر، يمكنك التنقل ذهابًا وإيابًا عبر كومة الدلائل. إذا كنت تفعل هذا كثيرًا، pushd +1
سيكون مرشحًا جيدًا لاسم مستعار.
اكتب ما يلي:
pushd +1
ختم فوق المكدس
من السهل العودة إلى العادات القديمة واستخدامها cd
لتغيير الدليل. إذا قمت بذلك، فسوف تقوم بالختم فوق الدليل الأول في المكدس. وهذا أمر لا مفر منه، حيث يتم حجز الفتحة الأولى لدليل العمل الحالي – ولا يتغير موضع أي من المجلدات الأخرى.
للقيام بذلك، اكتب ما يلي:
dirs -v -l
cd ~/Music
dirs -v -l
بعد أن تعتاد على pushd
و popd
من خلال استخدام الأوامر البرمجية (وربما استخدامها لإنشاء بعض الأسماء المستعارة)، سيكون لديك طريقة سريعة للغاية للتنقل بين الدلائل.
هذا هو السبب الذي يجعلنا نتعامل مع سطر الأوامر. الكفاءة رائعة، أليس كذلك؟