Dengan bash apakah ada cara untuk mendorong dan membuka direktori kerja saat ini? Saya mencoba menulis bash;cd dir; ./dostuff;exit;
tetapi direktori saat ini sekarang dir
.
Dengan bash apakah ada cara untuk mendorong dan membuka direktori kerja saat ini? Saya mencoba menulis bash;cd dir; ./dostuff;exit;
tetapi direktori saat ini sekarang dir
.
Jawaban:
Ada pushd
danpopd
Bash akan menyimpan sejarah direktori yang Anda kunjungi, Anda hanya perlu bertanya. Bash menyimpan histori dalam stack dan menggunakan perintah pushd dan popd untuk mengelola stack.
Contoh:
$ pwd; pushd /tmp; pwd; popd; pwd
/home/me
/tmp ~
/tmp
~
/home/me
Memanggil bash
memulai subkulit baru, yang memiliki input sendiri; tidak ada perintah lain yang akan berjalan sampai keluar. Mengitari perintah yang akan dijalankan dengan parens juga akan memulai subkulit baru, tetapi akan menjalankan perintah di dalamnya.
( cd dir ; ./dostuff )
Jika Anda tidak memerlukan banyak tingkatan riwayat direktori, Anda juga dapat melakukannya:
cd foo
# do your stuff in foo
cd -
Dibandingkan dengan pushd
/ popd
, ini memiliki kelemahan bahwa jika cd foo
gagal, Anda berakhir di direktori yang salah dengannya cd -
.
(Mungkin cd -
skrip luar lebih berguna. "Mari kita kembali ke tempat saya dulu.")
Saya menggunakan alias untuk melacak perubahan direktori saya sehingga untuk 'cd' di suatu tempat saya bisa kembali ke tempat saya menggunakan 'cd.', Atau kembali dua menggunakan 'cd ..', dll .;
alias pushdd="pushd \$PWD > /dev/null"
alias cd='pushdd;cd'
alias ssh='ssh -A'
alias soc='source ~/.bashrc'
#below to go back to a previous directory (or more)
alias popdd='popd >/dev/null'
alias cd.='popdd'
alias cd..='popdd;popdd'
alias cd...='popdd;popdd;popdd'
alias cd....='popdd;popdd;popdd;popdd'
#below to remove directories from the stack only (do not 'cd' anywhere)
alias .cd='popd -n +0'
alias ..cd='popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0'
..cd
cukup kuat? sepertinya itu hanya menghapus 10 item terakhir dari tumpukan.
pushd Saves the current directory on the top of the directory stack and then cd to dir. With no arguments, pushd exchanges the top two directories.