การขยายคำตอบจาก Anderson M. Gomesนั้น Bash ช่วยให้คุณสามารถอ้างถึงไดเรคทอรีก่อนหน้าในไดเรกทอรีสแต็กของคุณโดยการพิมพ์~N
(หรือ~+N
) ซึ่งN
เป็นตำแหน่งบนสแต็ก dir ตัวอย่างเช่น:
# go some places
$ cd /path/to/source/directory
$ pushd /path/to/destination/directory
$ pushd $HOME
$ pushd /tmp
# show the current dir stack
$ dirs -v
0 /tmp
1 ~
2 /path/to/destination/directory
3 /path/to/source/directory
ตอนนี้คุณสามารถคัดลอกไฟล์ระหว่างสองไดเรกทอรีที่ผ่านมาไม่ได้เป็นไดเรกทอรีปัจจุบันด้วย:
cp -v ~3/file1.txt ~2
ในการแก้ปัญหาโปสเตอร์ต้นฉบับคุณต้องทำ:
$ cd /path/to/source/directory
$ pushd /path/to/destination/directory
# show the current dir stack
$ dirs -v
0 /path/to/destination/directory
1 /path/to/source/directory
# copy
cp -v ~1/file[123].txt .
ด้วยชุดไฟล์ขนาดใหญ่คุณสามารถแสดงรายการชื่อไฟล์ในไฟล์ Manifest จากนั้นทำการคัดลอกจากซอร์สต้นทาง:
$ cd /path/to/destination/directory
$ pushd /path/to/source/directory
# copy
cp -v $(cat files_to_copy.list) ~1
ดูเพิ่มเติมที่: ส่วนนี้ของหน้า Bash man
ในทำนองเดียวกันใน Tcsh คุณสามารถใช้=2
สัญกรณ์ (แทน~2
) เพื่ออ้างถึง dir ที่สองบนสแต็ก dir ของคุณ
ดูเพิ่มเติมที่: ส่วนนี้ของหน้าคน Tcsh
cd
คำสั่งเพื่อให้คุณสามารถcd -
ที่จะกลับไปยังไดเรกทอรีก่อนหน้านี้ลูกศรขึ้นจะจำcd
คำสั่งและแก้ไขบรรทัดที่จะแทนcp
cd
(ctrl-a (จุดเริ่มต้นของบรรทัด), alt-d (kill-word)cp -a
,, ctrl-e (จุดสิ้นสุดของบรรทัด))