cd === åæ¢ç¨æ·å½åå·¥ä½ç®å½ã ## æ¦è¦ ```shell cd [-L|[-P [-e]]] [dir] ``` ## 主è¦ç¨é - 忢工ä½ç®å½è³`dir`ãå ¶ä¸`dir`ç表示æ³å¯ä»¥æ¯ç»å¯¹è·¯å¾æç¸å¯¹è·¯å¾ã - è¥åæ°`dir`çç¥ï¼åé»è®¤ä¸ºä½¿ç¨è çshellåé`HOME`ã - 妿`dir`æå®ä¸º`~`æ¶è¡¨ç¤ºä¸ºä½¿ç¨è çshellåé`HOME`ï¼`.`表示å½åç®å½ï¼`..`表示å½åç®å½çä¸ä¸çº§ç®å½ã - ç¯å¢åé`CDPATH`æ¯ç±åå·åå²çä¸å°å¤ä¸ªç®å½ï¼ä½ å¯ä»¥å°å¸¸å»çç®å½çä¸ä¸çº§å å ¥å°`CDPATH`以便æ¹ä¾¿è®¿é®å®ä»¬ï¼å¦æ`dir`以`/`å¼å¤´é£ä¹`CDPATH`ä¸ä¼è¢«ä½¿ç¨ã - å½`shopt`é项`cdable_vars`æå¼æ¶ï¼å¦æ`dir`å¨`CDPATH`åå½åç®å½ä¸åä¸åå¨ï¼é£ä¹ä¼æå®å½ä½åéï¼è¯»åå®çå¼ä½ä¸ºè¦è¿å ¥çç®å½ã ## åæ° dirï¼å¯éï¼ï¼æå®è¦åæ¢å°çç®å½ã ## é项 ```shell -L ï¼é»è®¤å¼ï¼å¦æè¦åæ¢å°çç®æ ç®å½æ¯ä¸ä¸ªç¬¦å·è¿æ¥ï¼é£ä¹åæ¢å°ç¬¦å·è¿æ¥çç®å½ã -P 妿è¦åæ¢å°çç®æ ç®å½æ¯ä¸ä¸ªç¬¦å·è¿æ¥ï¼é£ä¹åæ¢å°å®æåçç©çä½ç½®ç®å½ã - å½åå·¥ä½ç®å½å°è¢«åæ¢å°ç¯å¢åéOLDPWDæè¡¨ç¤ºçç®å½ï¼ä¹å°±æ¯åä¸ä¸ªå·¥ä½ç®å½ã ``` ## è¿åå¼ è¿åç¶æä¸ºæåé¤éæ æ³è¿å ¥æå®çç®å½ã ## ä¾å ```shell cd # è¿å ¥ç¨æ·ä¸»ç®å½ï¼ cd / # è¿å ¥æ ¹ç®å½ cd ~ # è¿å ¥ç¨æ·ä¸»ç®å½ï¼ cd .. # è¿åä¸çº§ç®å½ï¼è¥å½åç®å½ä¸ºâ/âï¼åæ§è¡å®åè¿å¨â/"ï¼".."为ä¸çº§ç®å½çææï¼ï¼ cd ../.. # è¿åä¸ä¸¤çº§ç®å½ï¼ cd !$ # æä¸ä¸ªå½ä»¤çåæ°ä½ä¸ºcdåæ°ä½¿ç¨ã ``` å ³äºåæ¢å°ä¸ä¸ä¸ªå·¥ä½ç®å½ç说æ ```shell cd - # å½ä»¤ä¼é¦å æ¾ç¤ºè¦åæ¢å°çç®æ ç®å½ï¼ç¶ååè¿å ¥ã cd ${OLDPWD} # å½ä»¤ä¼ç´æ¥åæ¢å°ä¸ä¸ä¸ªå·¥ä½ç®å½ã ``` å ³äº`CDPATH` ```shell # 设置æ¡é¢æä»¶å¤¹ä½ä¸ºCDPATHçå¼ã CDPATH='~/Desktop' # å设æä»¬æ¥ä¸æ¥è¦æ¼ç¤ºæ¶åå°çè·¯å¾~å~/Desktop䏿²¡ætest3æä»¶å¤¹ï¼ç°å¨æ°å»ºå®ä»¬ã mkdir ~/test3 mkdir ~/Desktop/test3 # è¿å ¥~ç®å½ã cd ~ # è¿å ¥test3ç®å½ã cd test3 # æ§è¡åæ¾ç¤º~/Desktop/test3å¹¶è¿å ¥è¯¥ç®å½ï¼è䏿¯~ç®å½çtest3ç®å½ã # 妿CDPATHåå¨å¼ï¼é£ä¹ä¼å å¨CDPATH䏿¥æ¾å¹¶è¿å ¥ç¬¬ä¸ä¸ªå¹é æåçï¼å¦æå ¨é¨å¤±è´¥é£ä¹æåå°è¯å½åç®å½ã ``` å ³äº`cdable_vars` ```shell # æå¼é项ã shopt -s cdable_vars # å设å½åè·¯å¾ä»¥åCDPATH没æå为new_varçç®å½ã new_var='~/Desktop' # å°è¯è¿å ¥ã cd new_var # å ³éé项ã shopt -u cdable_vars ``` ### 注æ 1. 该å½ä»¤æ¯bashå 建å½ä»¤ï¼ç¸å ³ç帮å©ä¿¡æ¯è¯·æ¥ç`help`å½ä»¤ã 2. 建议æ¨å¨ç¼åèæ¬çè¿ç¨ä¸å¦æå¿ è¦ä½¿ç¨`cd`å½ä»¤æ¶ï¼è¯·å¢å å¿ è¦ç注é以ç¨äºæéé 读è å½åå·¥ä½ç®å½ï¼ä»¥å åºç°è¯¸å¦`æ¾ä¸å°æä»¶`è¿ç±»é®é¢çåçã