ฉันจะไป 'cd ../../../../' อย่างต่อเนื่อง มีคำสั่ง / นามแฝงที่สามารถให้ฉันไป 'cmd 4' และฉันจะถูกนำกลับ 4 ไดเรกทอรี?
alias cmd5 = "cd ../../../../../"
ฉันจะไป 'cd ../../../../' อย่างต่อเนื่อง มีคำสั่ง / นามแฝงที่สามารถให้ฉันไป 'cmd 4' และฉันจะถูกนำกลับ 4 ไดเรกทอรี?
alias cmd5 = "cd ../../../../../"
คำตอบ:
ใส่สิ่งนี้ใน~/.bashrc
:
cdup() {
levels=${1-1}
while ((levels--)); do
cd ..
done
}
(ชื่อcdup
นั้นมาจากคำสั่ง FTP ที่เกี่ยวข้องเพียงแค่ FYI)
ฉันถูกสอนให้ใช้ 'pushd' และ 'popd' สำหรับสถานการณ์เช่นนี้
ตัวอย่างเช่นพิมพ์ 'pushd' จากนั้น 'cd / home' ตอนนี้พิมพ์ 'popd' แล้วคุณจะกลับไปที่จุดเริ่มต้น
'pushd' / 'popd' เป็นสแต็คคุณสามารถพุชไดเรกทอรีได้มากเท่าที่คุณต้องการ
แน่นอนว่าทำไม:
ขึ้น () { [$ # = 0] && cd .. && กลับ [$ 1 = 0] && ผลตอบแทน cd .. && up $ (($ 1 - 1)) }
up 500
คุณอาจแตกล้นถ้าคุณทำ :-)
รวดเร็วและสกปรก:
cmd () { dir=.; for i in $(seq 1 $1); do dir=$dir/..; done; pushd $dir; }
กำหนดสูตรเพื่อเปลี่ยนไดเรกทอรีเพียงครั้งเดียว
นี่คือวิธีทางเลือก:
function cdup
{
cd $(for ((i=0 ; i<$1 ;i++)); do printf "../" ; done)
}
คุณอาจต้องการใช้pushd
และpopd
ตั้งเครื่องหมายสถานที่และกลับไปที่นั่นได้อย่างง่ายดายจากไดเรกทอรีที่คุณเปลี่ยนไป
คุณยังสามารถตั้งค่าตัวแปรด้วยชื่อของไดเรกทอรีที่คุณใช้บ่อยๆจากนั้นซีดีที่นั่น:
MYPROJ=~/projects/name/src
cd $MYPROJ
proj1='cd $MYPROJ'
ฉันใช้autojumpซึ่งอนุญาตให้ฉันพิมพ์:
j h
>> /home/cjulien
j et
>> /etc
มันสามารถเรียนรู้จากนิสัยของคุณและเบามาก (และเสพติด;))
สร้างเส้นทางโดยใช้printf
แล้วcd
:
cdup() {
local path
printf -v path '%*s' "${1:-1}"
cd "${path// /../}"
}
ใช้เป็น:
cdup 4 # to go up four directories
cdup 1 # to explicitly go up one directory
cdup # to implicitly go up one
ความคิดสองประการที่อาจเป็นประโยชน์กับคุณ:
cd -
เปลี่ยนกลับไปเป็นไดเรกทอรีสุดท้ายที่คุณใช้ฉันใช้สิ่งนี้ตลอดเวลาที่จะได้รับจากส่วนลึกลงไปในรหัสต้นไม้ของฉันกลับไปที่รูทของมัน ... เปลี่ยนแปลง
cdd เก่าใหม่
นี่เป็นฟังก์ชั่นสคริปต์ที่ฉันเคยเขียนในอดีตที่ฉันใช้ในการเคลื่อนที่ไปมาระหว่างต้นไม้ที่คล้ายกัน โดยทั่วไปจะใช้เวลาสองข้อโต้แย้งและ regexp บนเส้นทางของคุณที่ดีสำหรับการย้ายไปมาระหว่างสาขาและเช่น ตัวอย่างเช่นถ้าคุณอยู่ใน ~ / bzr / เว็บ / ลำ / เส้นทาง / เพื่อ / บาร์และจำเป็นต้องได้รับการ ~ / bzr / เว็บ / คุณลักษณะสาขา / เส้นทาง / เพื่อ / cdd trunk feature-branch
คุณลักษณะแล้วคุณจะทำอย่างไร การนำไปใช้ที่ฉันมีอยู่เป็นภาษาของเชลล์โบราณบน AIX แต่มันค่อนข้างเล็กน้อยดังนั้นควรนำไปใช้ในเชลล์ที่เลือกได้ง่ายถ้าคุณต้องการ สำหรับเรามันมีประโยชน์มากเพราะโครงสร้างดูเหมือนว่า: ... / {product} / {version} / {release} / {src, bld, dbg, pkg, tst} / {component} / ... ดังนั้นการเคลื่อนไหว ในต้นไม้ต้นนั้นมันช่างค่อนข้างบ้า
ls
? แน่นอนคุณหมายถึงcd
อะไร