Como alternar diretórios com eficiência no Linux?

Para a troca de diretório no Linux, todos definitivamente pensarão em um comando: cdcomando. Este é o comando mais básico no Linux. Se você não conhece esse comando, pode fazê-lo rapidamente.

O comando cd é realmente muito conveniente, mas se você precisar alternar com frequência nos seguintes diretórios, pode ter que duvidar de sua vida:

/home/alvin/projects/blogdemos/linux-system-programming/thread
/home/alvin/projects/blogdemos/diff
/home/harry/study/日本文化/中日交流/影视业/动作片

Se você só pode usar o comando cd, precisa manter o cd até enlouquecer.

Nesse caso, como alternamos diretórios com eficiência? Liang prometeu introduzir três pushdcomandos: popd, dirs,.

Esses três comandos são na verdade para 目录栈operar, e 目录栈é um diretório para salvar a estrutura da pilha, o topo da estrutura da pilha sempre manteve o diretório atual (bate no quadro-negro, o foco !!).

Há alunos que sabem noções básicas de programação, trata-se de seguir os 后进先出princípios. Em outras palavras, na estrutura da pilha, os elementos que são colocados na pilha posteriormente serão retirados da pilha primeiro.

Depois de revisar os conceitos básicos, vamos examinar esses três comandos em detalhes.

Exibe o conteúdo da pilha do diretório: dirs

O primeiro é dirs. Este comando é muito simples, é mostrar o conteúdo da pilha do diretório. Ele tem as seguintes três opções comuns:

Opções significado
-p Exibir um registro por linha
-v Exibir um registro por linha e exibir o índice do registro na pilha
-c Esvazie a pilha do diretório

Dentre eles, -pa -vdiferença entre as opções é que -vserá exibido o índice de cada registro nas opções da pilha, além de ser exatamente o mesmo. Se houver uma pilha de diretório agora, vamos ver o que ela contém:

[alvin@VM_0_16_centos dir2]$ pwd
/home/alvin/test/dir2
[alvin@VM_0_16_centos dir2]$ dirs -v
 0  ~/test/dir2
 1  ~/test/dir1
 2  ~/test/dir3
 3  ~/test

Observe que o elemento superior é sempre consistente com o diretório atual. Se você visualizar a pilha do diretório em outro diretório, o primeiro elemento será alterado de acordo. Da mesma forma, se você usar a apresentação de texto pushde popdpara operar a pilha de diretórios, o diretório atual para o primeiro elemento de comutação correspondente ao endereço da pilha de diretórios.

Se quisermos limpar a pilha de diretórios, a -copção de uso direto .

[alvin@VM_0_16_centos diff]$ dirs -c
[alvin@VM_0_16_centos diff]$ dirs -v
 0  ~/projects/blogdemos/diff

Empurre para a pilha de diretório: pushd

Depois que cada comando pushd for executado, um comando dirs será executado por padrão para exibir o conteúdo da pilha do diretório. Os principais usos do pushd são os seguintes:

1. pushd + diretório

Se pushd for usado diretamente com um diretório, ele alternará para esse diretório e o colocará no topo da pilha de diretórios. exemplo:

[alvin@VM_0_16_centos test]$ pushd dir1
~/test/dir1 ~/test
[alvin@VM_0_16_centos dir1]$ pushd ../dir2
~/test/dir2 ~/test/dir1 ~/test
[alvin@VM_0_16_centos dir2]$ pushd ../dir3
~/test/dir3 ~/test/dir2 ~/test/dir1 ~/test
[alvin@VM_0_16_centos dir3]$ dirs -v
 0  ~/test/dir3
 1  ~/test/dir2
 2  ~/test/dir1
 3  ~/test

2. pushd (sem quaisquer parâmetros)

O efeito de executar pushd sem nenhum parâmetro é trocar os dois diretórios superiores da pilha de diretórios. Enfatizamos anteriormente que o primeiro elemento da pilha de diretórios está relacionado ao diretório atual, portanto, quando o primeiro elemento for alterado, o diretório atual mudará de acordo e vice-versa.

[alvin@VM_0_16_centos dir3]$ dirs -v
 0  ~/test/dir3
 1  ~/test/dir2
 2  ~/test/dir1
 3  ~/test
[alvin@VM_0_16_centos dir3]$ pwd
/home/alvin/test/dir3
[alvin@VM_0_16_centos dir3]$ pushd
~/test/dir2 ~/test/dir3 ~/test/dir1 ~/test
[alvin@VM_0_16_centos dir2]$ pwd
/home/alvin/test/dir2    #对应目录发生改变
[alvin@VM_0_16_centos dir2]$ dirs -v
 0  ~/test/dir2
 1  ~/test/dir3        #索引 0 和 1 的内容对调
 2  ~/test/dir1
 3  ~/test

* 3. pushd +/- n *

Pushd +/- n é para mudar diretamente para o diretório correspondente ao valor do índice. Observe que tanto o sinal de mais quanto o sinal de menos podem ser usados ​​aqui. Se for um sinal de mais, contará a partir do topo da pilha de diretórios e, se for um sinal de menos, contará a partir da parte inferior da pilha de diretórios.

A seguir, voltamos à pergunta do início deste artigo: Se quisermos alternar frequentemente entre dois ou mais diretórios com caminhos muito longos, o que devemos fazer?

Primeiro, usamos pushd + directory para adicionar esses caminhos à pilha de diretórios;

Em seguida, use pushd +/- n para alternar rapidamente entre os diferentes diretórios. A demonstração específica é a seguinte:

[alvin@VM_0_16_centos dir2]$ pwd
/home/alvin/test/dir2
[alvin@VM_0_16_centos dir2]$ dirs -v
 0  ~/test/dir2
 1  ~/test/dir3
 2  ~/test/dir1
 3  ~/test
[alvin@VM_0_16_centos dir2]$ pushd +2
~/test/dir1 ~/test ~/test/dir2 ~/test/dir3
[alvin@VM_0_16_centos dir1]$ pwd
/home/alvin/test/dir1
[alvin@VM_0_16_centos dir1]$ dirs -v
 0  ~/test/dir1
 1  ~/test
 2  ~/test/dir2
 3  ~/test/dir3

Abra a pilha do diretório: popd

Depois de cada comando popd ser executado, um comando dirs será executado por padrão para exibir o conteúdo da pilha do diretório. Os principais usos do popd são os seguintes:

1. popd (sem quaisquer parâmetros)

O efeito da execução do popd sem nenhum parâmetro é exibir o elemento superior na pilha do diretório. Nesse momento, o elemento superior da pilha muda e, naturalmente, o diretório atual muda de acordo.

[alvin@VM_0_16_centos dir3]$ dirs -v
 0  ~/test/dir3
 1  ~/test/dir1
 2  ~/test
 3  ~/test/dir2
[alvin@VM_0_16_centos dir3]$ popd
~/test/dir1 ~/test ~/test/dir2
[alvin@VM_0_16_centos dir1]$ dirs -v
 0  ~/test/dir1
 1  ~/test
 2  ~/test/dir2

2.popd +/- n

Exclua o enésimo elemento da pilha de diretórios. Da mesma forma, os sinais de mais e menos indicam se é necessário contar de cima para baixo ou de baixo para cima.

[alvin@VM_0_16_centos dir1]$ dirs -v
 0  ~/test/dir1
 1  ~/test
 2  ~/test/dir2
[alvin@VM_0_16_centos dir1]$ popd +1
~/test/dir1 ~/test/dir2
[alvin@VM_0_16_centos dir1]$ dirs -v
 0  ~/test/dir1
 1  ~/test/dir2

Finalmente, recentemente, muitos amigos me pediram um roteiro de aprendizagem do Linux , então, com base na minha experiência, passei um mês ficando acordado até tarde em meu tempo livre e compilei um e-book. Quer você esteja em uma entrevista ou em auto-aperfeiçoamento, acredito que isso o ajudará! O diretório é o seguinte:

Dê a todos de graça, basta pedir que você me dê um polegar para cima!

Ebook | Roteiro de aprendizagem de desenvolvimento Linux

Espero também que alguns amigos possam se juntar a mim para tornar este e-book mais perfeito!

Ganho? Espero que os ferros antigos tenham um combo de três golpes para que mais pessoas possam ler este artigo

Leitura recomendada:

Acho que você gosta

Origin blog.csdn.net/yychuyu/article/details/108229198
Recomendado
Clasificación