看板 Linux 關於我們 聯絡資訊
※ 引述《mswethan (@竹北)》之銘言: : 每次cd 到別的目錄後,下個動作一定是ls,看一下該目錄內有哪些東西... : 這樣子真的很麻煩.. : cd xx ls : cd yy ls : ... : 我想要alias cd指令,使它做三個動作.. : 1. change dir : 2. clear : 3. ls : 使用的是bash,第一個動作不曉得有沒有人知道該如何設定?? : alias cd='_____;clear;ls' : 感謝 借標題一問 我想做到上述的功能 但唯有cd到家目錄時不列出檔案清單 我的寫法如下: alias la='ls -FA --color=auto' cd() { builtin cd "$1"; if [ "$1" != "$HOME" ]; then la; fi; } 但這寫法有兩個問題 1. user@local_host:~ $ cd folder_1 file_1 file_2 file_3 => 預期地顯示檔案清單 user@local_host:~/f1 $ cd .. .bashrc .vimrc .vim .bash_profile => 不應該顯示檔案清單卻顯示了 (原因應該是".."沒被expand成$HOME的內容) 2. user@local_host:~ $ cd folder_2 bash: cd: folder_2: No such file or directory .bashrc .vimrc .vim .bash_profile => 不應該顯示檔案清單卻顯示了 (原因是folder_2資料夾不存在, if判斷式就成立了) 問題2比較好處理, 檢查cd的路徑是資料夾而非檔案, 且存在即可 問題1我還不知道怎麼解, 請問有什麼解法嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.31.149
uranusjr:改成檢查 $PWD 如何? 08/31 08:48
成功了~謝謝 if [ "$PWD" != "$HOME" ]; then la; fi;
bitlife:用 realpath 更好,能應付有 soft link 的情形 08/31 10:26
什麼意思?能說詳細點嗎 ※ 編輯: Holocaust123 來自: 140.112.31.149 (08/31 11:01)
bitlife:例如: ln -s $HOME /tmp/myhome 再 cd /tmp/myhome 試看看 08/31 13:06
bitlife:用 realpath 可以解決 soft link 產生的問題 08/31 13:07