Diferença entre comandos
A diferença é que cd
é um único comando, nenhum argumento. Se não houver argumentos, cd
irá para sua pasta inicial por padrão. Agora, por contraste ..
sempre significa "um diretório para cima" ou diretório pai. Então, quando você fizer cd ..
subirá um nível. E isso é sempre verdade, com exceção da pasta /
, porque não há outro lugar para ir. Aqui está uma demonstração:
$ pwd
/etc
$ cd ..
$ pwd
/
$ cd ..
$ pwd
/
Usando esse conhecimento na prática
Então, onde os dois comandos são úteis? cd
retornará ao seu diretório pessoal, que é o mesmo que cd ~
ou cd $HOME
. Isso significa que, se você estiver em algum lugar muito profundo na árvore de diretórios, poderá voltar rápida e facilmente ao diretório inicial. Aqui está um exemplo:
$ pwd
/sys/class/block/sda1/holders
$ cd
$ pwd
/home/xieerqi
Com ..
você também pode fazer coisas legais. Digamos que eu esteja na pasta /sys/class/block/sda1/holders
e quero ir rapidamente para três níveis. Então podemos fazer isso:
$ pwd
/sys/class/block/sda1/holders
$ cd ../../../
$ pwd
/sys/class
O que também pode ser feito é tornar uma função fora disso. Podemos navegar mais facilmente, especificando vários níveis para subir. Aqui está:
goup() {
num=
while [ $num -ne 0 ]
do
cd ..
num=$(expr $num - 1 )
done
}
Sabendo que cd ..
sobe um nível, por que não especificar quantas vezes queremos repetir cd ..
? Isso é exatamente o que esse loop while faz. E aqui está em ação:
$ pwd
/sys/class/block/sda1/holders
$ goup 4
$ pwd
/sys