Android

คำสั่ง Pushd และ popd ใน linux

The Straight Poop About pushd And popd

The Straight Poop About pushd And popd

สารบัญ:

Anonim

pushd และ popd คือคำสั่งที่อนุญาตให้คุณทำงานกับสแต็กไดเร็กทอรีและเปลี่ยนไดเร็กทอรีการทำงานปัจจุบันใน Linux และระบบปฏิบัติการ Unix-like อื่น ๆ แม้ว่า pushd และ popd เป็นคำสั่งที่ทรงพลังและมีประโยชน์มาก

ในบทช่วยสอนนี้เราจะแสดงวิธีใช้คำสั่ง pushd และ popd เพื่อสำรวจ popd ไดเรกทอรีระบบของคุณ

ไดเรกทอรีสแต็ค

ไดเรกทอรีสแต็คเป็นรายการของไดเรกทอรีที่คุณเคยไปก่อนหน้านี้ สามารถดูเนื้อหาของไดเรกทอรีสแต็กได้โดยใช้คำสั่ง dirs ไดเร็กทอรีถูกเพิ่มเข้ากับสแต็กเมื่อเปลี่ยนเป็นไดเร็กทอรีโดยใช้คำสั่ง pushd และลบออกด้วยคำสั่ง popd

ไดเรกทอรีการทำงานปัจจุบันอยู่ด้านบนสุดของไดเรกทอรีสแต็กเสมอ ไดเร็กทอรีการทำงานปัจจุบันคือไดเร็กทอรี (โฟลเดอร์) ที่ผู้ใช้ทำงานอยู่ในปัจจุบันทุกครั้งที่คุณโต้ตอบกับบรรทัดคำสั่งคุณกำลังทำงานภายในไดเร็กทอรี

คำสั่ง pwd ช่วยให้คุณค้นหาไดเรกทอรีที่คุณอยู่ในปัจจุบัน

เมื่อนำทางผ่านระบบไฟล์ให้ใช้ปุ่ม Tab เพื่อเติมชื่อของไดเรกทอรีให้สมบูรณ์โดยอัตโนมัติ การเพิ่มเครื่องหมายสแลชที่ส่วนท้ายของชื่อไดเร็กทอรีเป็นทางเลือก

pushd , popd และ dirs เป็น shell builtins และพฤติกรรมของมันอาจแตกต่างกันเล็กน้อยจาก shell ถึง shell เราจะครอบคลุมคำสั่งในเวอร์ชัน Bash

คำสั่ง pushd

ไวยากรณ์สำหรับคำสั่ง pushd เป็นดังนี้:

pushd

ตัวอย่างเช่นการบันทึกไดเรกทอรีปัจจุบันไปที่ด้านบนของไดเรกทอรีสแต็คและเปลี่ยนเป็น /var/www คุณจะพิมพ์:

~$ pushd /var/www

ในความสำเร็จคำสั่งข้างต้นจะพิมพ์ไดเรกทอรีสแต็ค ~ เป็นไดเรกทอรีที่เราดำเนินการคำสั่ง pushd สัญลักษณ์ตัวหนอน ~ หมายถึงไดเรกทอรีบ้าน

/var/www ~

pushd ก่อนบันทึกไดเร็กทอรีการทำงานปัจจุบันไปที่ด้านบนของสแต็กจากนั้นไปที่ไดเร็กทอรีที่กำหนด เนื่องจากไดเรกทอรีปัจจุบันต้องอยู่ด้านบนสุดของสแต็กเมื่อเปลี่ยนไดเรกทอรีปัจจุบันใหม่ไปที่ด้านบนสุดของสแต็ก แต่ไม่ได้บันทึกในสแต็ก หากต้องการบันทึกคุณต้องเรียกใช้ pushd จากมัน หากคุณใช้ cd เพื่อเปลี่ยนเป็นไดเร็กทอรีอื่นรายการบนสุดของสแต็กจะหายไป

เพิ่มไดเรกทอรีอื่นลงในสแต็ก:

/var/www$ pushd /opt

/opt /var/www ~

หากต้องการระงับการเปลี่ยนไดเรกทอรีเป็นค่าเริ่มต้นให้ใช้ตัวเลือก -n ตัวอย่างเช่นหากต้องการเพิ่มไดเร็กทอรี /usr/local ไปยังสแต็ก แต่ไม่เปลี่ยนเป็นคุณจะต้องพิมพ์:

/opt$ pushd -n /usr/local

เนื่องจากไดเร็กทอรีปัจจุบัน (ซึ่งอยู่ด้านบนเสมอ) จะไม่เปลี่ยนแปลงไดเร็กทอรี /usr/local จะถูกเพิ่มเป็นอันดับที่สองจากด้านบนของสแต็ก:

/opt /usr/local /var/www ~

pushd ยอมรับสองตัวเลือก +N และ -N ที่อนุญาตให้คุณนำทางไปยังไดเรกทอรี Nth ของสแต็ก ตัวเลือก +N เปลี่ยนเป็นองค์ประกอบที่ Nth ของรายการสแต็คนับจากซ้ายไปขวาเริ่มต้นด้วยศูนย์ เมื่อใช้ -N ทิศทางของการนับจะมาจากขวาไปซ้าย

เพื่อแสดงให้เห็นถึงตัวเลือกต่าง ๆ ได้ดียิ่งขึ้นลองพิมพ์ไดเรกทอรีสแต็คปัจจุบัน:

/opt$ dirs -l -v

ผลลัพธ์จะแสดงรายการดัชนีของสแต็กไดเร็กทอรี:

0 /opt 1 /usr/local 2 /var/www 3 /home/linuxize

เมื่อนับจากบนลงล่าง (หรือจากซ้ายไปขวา) ดัชนีของไดเรกทอรีคือ 2

pushd +2

เมื่อนับจากล่างขึ้นบนดัชนีของไดเรกทอรี /var/www คือ 1

pushd -1.

เมื่อใช้โดยไม่มีอาร์กิวเมนต์ใด ๆ pushd จะสลับสองอันดับแรกของไดเรกทอรีและทำให้ด้านบนใหม่เป็นไดเรกทอรีปัจจุบัน สิ่งนี้เหมือนกับเมื่อใช้คำสั่ง cd -

คำสั่ง popd

คำสั่ง popd ใช้รูปแบบ:

popd

เมื่อใช้โดยไม่มีอาร์กิวเมนต์ popd จะลบไดเร็กทอรีบนสุดออกจากสแต็กและนำทางไปยังไดเร็กทอรีบนสุดใหม่

สมมติว่าเรามีไดเรกทอรีไดเรกทอรีดังต่อไปนี้:

/opt /usr/local /var/www /etc/nginx ~

/opt$ popd

ผลลัพธ์จะแสดงไดเรกทอรีสแต็กใหม่:

/usr/local /var/www /etc/nginx ~

อ็อพชัน -n ไม่แสดงการเปลี่ยนแปลงไดเร็กทอรีดีฟอลต์และลบไอเท็มที่สองออกจากสแต็ก:

/opt$ popd -n

/usr/local /etc/nginx ~

เช่นเดียวกับ pushd , popd ยังยอมรับตัวเลือก +N และ -N ที่สามารถใช้เพื่อลบไดเรกทอรี Nth ของสแต็ก

/opt$ popd +1

/usr/local ~

ข้อสรุป

โดยปกติคุณจะใช้คำสั่ง cd เพื่อย้ายจากไดเรกทอรีหนึ่งไปยังอีกไดเรกทอรีหนึ่ง อย่างไรก็ตามหากคุณใช้เวลามากในบรรทัดคำสั่งคำสั่ง pushd และ popd จะเพิ่มประสิทธิภาพและประสิทธิผลของคุณ

bash terminal