Pendekatan lain adalah membuat perintah sendiri yang didedikasikan untuk tujuan ini. Ini dapat dilakukan melalui fungsi yang dapat terlihat seperti:
$ function mv-special { mv $1 $2; cd $(dirname $(echo $2-)); }
Di mana: (1) mv-special adalah nama fungsi; (2) variabel $1dan $2argumen dalam fungsi yang akan digunakan oleh perintah mvdan cd; (3) $(echo $2-) menambahkan karakter wildcat ke akhir string di var $2, dan memperbaiki perilaku dirnamejika variabel $2hanya berisi path; (4) $(dirname $(echo $2-)) hanya akan memfilter jalur dari $2.
Menurut jawaban ini fungsinya bisa seperti:
$ function mv-special { mv $1 $2; cd ${2%/*}; }
Di mana: ${2%/*}akan menyaring hanya jalur dari $2.
Agar tersedia sebagai perintah, fungsi ini harus diekspor :
$ export -f mv-special
Pemakaian:
$ mv-special file.pdf ../../../Dropbox/sharedfolder/subdirectory/file.pdf
atau:
$ mv-special file.pdf ../../../Dropbox/sharedfolder/subdirectory/
Harap perhatikan bahwa - untuk kedua varian - argumen kedua ( $2) harus diakhiri dengan nama file atau slash ( /).
Agar perintah baru kami tersedia secara permanen, definisi fungsi dan perintah ekspor harus ditambahkan ke ~/.bashrc:
# My custom 'mv-special' command:
function mv-special { mv $1 $2; cd $(dirname $(echo $2-)); }
export -f mv-special
atau:
# My custom 'mv-special' command:
function mv-special { mv $1 $2; cd ${2%/*}; }
export -f mv-special

Perintah kustom dapat dibuat dan melalui file skrip yang dapat dieksekusi yang ditempatkan di ~/binatau di /usr/sbin: Bagaimana cara membuat perintah terminal kustom (untuk menjalankan skrip)? Tapi jujur saja, saya menghadapi masalah dengan perilaku cddalam skenario ini.