Ini adalah sesuatu yang sering saya lakukan
$ mkdir foo
$ cd foo
Ini berfungsi sebagai satu perintah, tetapi lebih banyak penekanan tombol dan tidak menghemat waktu.
$ mkdir foo && cd foo
Apakah ada jalan pintas untuk ini?
Sunting
Dengan menggunakan bantuan di bawah ini, ini tampaknya menjadi jawaban yang paling elegan.
# ~/.bashrc
function mkcd {
if [ ! -n "$1" ]; then
echo "Enter a directory name"
elif [ -d $1 ]; then
echo "\`$1' already exists"
else
mkdir $1 && cd $1
fi
}
command-line
bash
terminal
shortcuts
macek
sumber
sumber
mkdir
jika Anda menggunakannya,command mkdir $1
bukan hanyamkdir $1
di tubuh fungsi.Jawaban:
Saya bukan ahli Linux / bash, tetapi coba letakkan ini di blog Anda
.bashrc
.PS Terima kasih kepada Dennis untuk menggunakan
command mkdir
.sumber
`which mkdir`
, gunakan sajacommand mkdir
.man command
- dapatkah Anda mengarahkan saya ke referensi? (Saya bisa mencari tahu apa fungsinya, tetapi membayarnya harus teliti;)command
dijelaskan dalam manualbash
(yang merupakan built-in; ini bukan perintah terpisah). Anda juga bisa mencobahelp command
.The
bash
,zsh
KerangJika Anda tidak ingin fungsi lain mengingat dan tidak keberatan bashism:
The
$_
(dollar garis bawah) variabel perintah bash berisi parameter terbaru. Jadi, jika pengguna mengetik berikut di baris perintah:,echo foo bar && echo $_ baz
maka hasilnya adalah sebagai berikut:The
fish
ShellDi kulit ikan, saya akan mengetik yang berikut:
Tombol alt dikombinasikan dengan tombol panah atas atau bawah akan menggilir riwayat parameter perintah.
sumber
zsh
.Untuk pengguna oh-my-zsh :
$ take 'directory_name'
Referensi: https://github.com/robbyrussell/oh-my-zsh/wiki/Cheatsheet
sumber
type take
, maka Anda akan dapatkantake is a shell function from /home/username/.oh-my-zsh/lib/functions.zsh
. vi file yang Anda dapatkanfunction take() { mkdir -p $@ && cd ${@:$#} }
Bagaimana dengan:
Ini sedikit lebih mudah daripada menggunakan &&, menggabungkan jawaban quack quixote dan kzh.
sumber
&&
adalah bahwacd
tidak akan dieksekusi jikamkdir
perintah gagalAnda dapat mencoba sesuatu seperti ini:
Simpan skrip ini ke beberapa tempat yang ada di jalur Anda, misalnya, / usr / local / bin atau ~ / bin (Anda harus meletakkan yang terakhir ini di jalur Anda di file ~ / .profile Anda). Maka Anda bisa menyebutnya.
sumber
cd
di dalam konteks eksekusi~/bin/mkcd
skrip, bukan penelepon skrip.sumber
Ini adalah fungsi sederhana yang saya taruh di
~/.config/fish/config.fish
file saya yang menyelesaikan tugas ini:The
-pv
tag memungkinkan untuk pembuatan direktori dengan sub-direktori.sumber
Tergantung pada hasil yang diinginkan jika direktori sudah ada.
Gagal jika direktori sudah ada
Ganti direktori bagaimanapun
Gunakan mkcd some / path / ke / my / dir
sumber
Saya menemukan bahwa fungsi di bawah ini hanya dapat membuat satu direktori, jika saya ingin membuat subdirektori pada saat yang sama, itu tidak berfungsi:
Jadi saya mengubahnya dan sekarang berfungsi dengan baik!
sumber