Tento článek je součástí probíhající série Tipy pro produktivitu pro geeky. cd je jedním z nejčastěji používaných příkazů během relace Unixu. V tomto článku jsem uvedl 6 hacků příkazů cd, které okamžitě zvýší vaši produktivitu a usnadní navigaci v adresářové struktuře z příkazového řádku.
Hack #1:Použijte CDPATH k definování základního adresáře pro příkaz cd
Pokud často provádíte cd do podadresářů konkrétního nadřazeného adresáře, můžete nastavit CDPATH na nadřazený adresář a provést cd do podadresářů bez uvedení cesty k nadřazenému adresáři, jak je vysvětleno níže.
[ramesh@dev-db ~]# pwd /home/ramesh [ramesh@dev-db ~]# cd mail -bash: cd: mail: No such file or directory [Note: This is looking for mail directory under current directory] [ramesh@dev-db ~]# export CDPATH=/etc [ramesh@dev-db ~]# cd mail [Note: This is looking for mail under /etc and not under current directory] [ramesh@dev-db /etc/mail]# pwd /etc/mail
Chcete-li, aby tato změna byla trvalá, přidejte export CDPATH=/etc do vašeho ~/.bash_profile
Tento hack může být velmi užitečný v následujících situacích:
- Oracle DBA často pracující pod $ORACLE_HOME mohou nastavit proměnnou CDPATH na domovskou stránku Oracle
- Unixoví správci systému, kteří často pracují pod /etc, mohou nastavit proměnnou CDPATH na /etc
- Vývojáři často pracující v adresáři projektu /home/projects mohou nastavit proměnnou CDPATH na /home/projects
- Koncoví uživatelé, kteří často přistupují k podadresářům ve svém domovském adresáři, mohou nastavit proměnnou CDPATH na ~ (domovský adresář)
Hack #2:Použijte alias cd k efektivnímu procházení adresáře
Když procházíte velmi dlouhou adresářovou strukturou, můžete použít cd ..\..\ s více ..\'s v závislosti na tom, kolik adresářů chcete přejít, jak je uvedeno níže.
# mkdir -p /tmp/very/long/directory/structure/that/is/too/deep # cd /tmp/very/long/directory/structure/that/is/too/deep # pwd /tmp/very/long/directory/structure/that/is/too/deep # cd ../../../../ # pwd /tmp/very/long/directory/structure
Namísto spouštění cd ../../../.. pro přechod o čtyři úrovně výš použijte jednu z následujících metod aliasů:
Navigujte v adresáři nahoru pomocí ..n : V níže uvedeném příkladu se ..4 používá pro přechod o 4 adresářovou úroveň nahoru, ..3 pro přechod o 3 adresářovou úroveň nahoru, ..2 pro přechod o 2 adresářovou úroveň nahoru. Přidejte následující alias do .bash_profile a znovu se přihlaste.
alias ..="cd .." alias ..2="cd ../.." alias ..3="cd ../../.." alias ..4="cd ../../../.." alias ..5="cd ../../../../.." # cd /tmp/very/long/directory/structure/that/is/too/deep #..4 [Note: use ..4 to go up 4 directory level] # pwd /tmp/very/long/directory/structure/
Navigace v adresáři pouze pomocí teček: V níže uvedeném příkladu se ….. (pět teček) používá k přechodu o 4 úrovně adresářů nahoru. Zadáním 5 teček nahoru 4 adresářová struktura je opravdu snadno zapamatovatelná, protože když napíšete první dvě tečky, myslíte si, že „jít o jeden adresář nahoru“, poté každá další tečka znamená přejít o úroveň výše. Takže použijte…. (čtyři tečky) pro přechod o 3 adresářovou úroveň nahoru a .. (dvě tečky) pro přechod o 1 adresářovou úroveň nahoru. Přidejte následující alias do .bash_profile a znovu se přihlaste, aby ….. (pět teček) fungoval správně.
alias ..="cd .." alias ...="cd ../.." alias ....="cd ../../.." alias .....="cd ../../../.." alias ......="cd ../../../../.." # cd /tmp/very/long/directory/structure/that/is/too/deep # ..... [Note: use ..... (five dots) to go up 4 directory level] # pwd /tmp/very/long/directory/structure/
Navigujte v adresáři nahoru pomocí cd následovaného po sobě jdoucími tečkami: V níže uvedeném příkladu se cd….. (cd následované pěti tečkami) používá k přechodu o 4 úrovně adresářů nahoru. Vytvoření 5 teček nahoru 4 adresářová struktura je opravdu snadno zapamatovatelná, protože když napíšete první dvě tečky, myslíte si, že „jít o jeden adresář nahoru“, poté každá další tečka znamená jít o úroveň výš. Takže použijte cd... (cd následované čtyřmi tečkami) pro přechod o 3 adresářovou úroveň nahoru a cd… (cd následované třemi tečkami) pro přechod o 2 adresářovou úroveň nahoru. Přidejte následující alias do .bash_profile a znovu se přihlaste pro výše uvedené cd….. (pět teček), aby fungovalo správně.
alias cd..="cd .." alias cd...="cd ../.." alias cd....="cd ../../.." alias cd.....="cd ../../../.." alias cd......="cd ../../../../.." # cd /tmp/very/long/directory/structure/that/is/too/deep # cd..... [Note: use cd..... to go up 4 directory level] # pwd /tmp/very/long/directory/structure
Hac #3:Proveďte mkdir a cd pomocí jediného příkazu
Někdy, když vytváříte nový adresář, můžete do nového adresáře okamžitě cd, abyste provedli nějakou práci, jak je ukázáno níže.
# mkdir -p /tmp/subdir1/subdir2/subdir3 # cd /tmp/subdir1/subdir2/subdir3 # pwd /tmp/subdir1/subdir2/subdir3
Nebylo by hezké zkombinovat mkdir i cd do jednoho příkazu? Přidejte následující do .bash_profile a znovu se přihlaste.
function mkdircd () { mkdir -p "$@" && eval cd "\"\$$#\""; }
Nyní proveďte mkdir i cd současně pomocí jediného příkazu, jak je ukázáno níže:
# mkdircd /tmp/subdir1/subdir2/subdir3 [Note: This creates the directory and cd to it automatically] # pwd /tmp/subdir1/subdir2/subdir3
Hack #4:Použijte „cd -“ k přepínání mezi posledními dvěma adresáři
Mezi posledními dvěma aktuálními adresáři můžete přepínat pomocí cd – jak je ukázáno níže.
# cd /tmp/very/long/directory/structure/that/is/too/deep # cd /tmp/subdir1/subdir2/subdir3 # cd - # pwd /tmp/very/long/directory/structure/that/is/too/deep # cd - # pwd /tmp/subdir1/subdir2/subdir3 # cd - # pwd /tmp/very/long/directory/structure/that/is/too/deep
Poznámka :Můžete také nahradit argument z jiných příkazů v historii příkazem cd pomocí příkladů č. 12 a č. 13 uvedených v článku s příklady historie příkazového řádku.
Hack #5:Použijte dirs, pushd a popd k manipulaci se zásobníkem adresářů
Zásobník adresářů můžete použít k vložení adresářů do něj a později adresáře ze zásobníku. V tomto příkladu jsou použity následující tři příkazy.
- dirs:Zobrazí zásobník adresářů
- pushd:Push adresář do zásobníku
- popd:Pop adresář ze zásobníku a cd do něj
Dirs vždy vytiskne aktuální adresář následovaný obsahem zásobníku. I když je zásobník adresářů prázdný, příkaz dirs bude stále tisknout pouze aktuální adresář, jak je znázorněno níže.
# popd -bash: popd: directory stack empty # dirs ~ # pwd /home/ramesh
Jak používat pushd a popd? Nejprve vytvoříme nějaké dočasné adresáře a vložíme je do zásobníku adresářů, jak je znázorněno níže.
# mkdir /tmp/dir1 # mkdir /tmp/dir2 # mkdir /tmp/dir3 # mkdir /tmp/dir4 # cd /tmp/dir1 # pushd . # cd /tmp/dir2 # pushd . # cd /tmp/dir3 # pushd . # cd /tmp/dir4 # pushd . # dirs /tmp/dir4 /tmp/dir4 /tmp/dir3 /tmp/dir2 /tmp/dir1 [Note: The first directory (/tmp/dir4) of the dir command output is always the current directory and not the content from the stack.]
V této fázi obsahuje zásobník adresářů následující adresáře:
/tmp/dir4 /tmp/dir3 /tmp/dir2 /tmp/dir1
Poslední adresář, který byl vložen do zásobníku, bude nahoře. Když provedete popd, bude cd na horní položku adresáře v zásobníku a odstraní ji ze zásobníku. Jak je uvedeno výše, poslední adresář, který byl vložen do zásobníku, je /tmp/dir4. Takže, když uděláme popd, bude cd do /tmp/dir4 a odstraní ho ze zásobníku adresářů, jak je ukázáno níže.
# popd # pwd /tmp/dir4 [Note: After the above popd, directory Stack Contains: /tmp/dir3 /tmp/dir2 /tmp/dir1] # popd # pwd /tmp/dir3 [Note: After the above popd, directory Stack Contains: /tmp/dir2 /tmp/dir1] # popd # pwd /tmp/dir2 [Note: After the above popd, directory Stack Contains: /tmp/dir1] # popd # pwd /tmp/dir1 [Note: After the above popd, directory Stack is empty!] # popd -bash: popd: directory stack empty
Hack #6:Použijte „shopt -s cdspell“ k automatické opravě chybně zadaných názvů adresářů na cd
Použijte shopt -s cdspell pro automatickou opravu překlepů v příkazu cd, jak je znázorněno níže. Pokud nejste dobří v psaní a děláte spoustu chyb, bude to velmi užitečné.
# cd /etc/mall -bash: cd: /etc/mall: No such file or directory # shopt -s cdspell # cd /etc/mall # pwd /etc/mail [Note: By mistake, when I typed mall instead of mail, cd corrected it automatically]
Pokud se vám tento článek líbil, přidejte si jej do záložek na del.icio.us , a klopýtnout .