Quando eu uso o comando cp ou move em uma janela de terminal, atualmente estou com o bash em uma determinada pasta como esta.
NES@server:~/Desktop/dir1$
E agora eu quero copiar um arquivo daqui ~/anotherdir/dir2
para a pasta escolhida atual no bash (dir1) eu usaria o comando
cp ~/anotherdir/dir2/file ~/Desktop/dir1
existe uma cadeia de atalhos para se referir ao diretório escolhido atualmente? Para que neste exemplo eu não precise fornecer o caminho completo para o diretório de destino, mas o comando sabe que ele deve usar o diretório escolhido atualmente no bash? ou seja, como ~ significa o diretório inicial?
..
significa um diretório mais baixo. Pode ser usado várias vezes, ou seja,cd ../..
..
levará você ao diretório pai do seu diretório atual. Bom ponto.popd
epushd
, mas que está se transformando em um ensaio..
e..
no nível do sistema de arquivos, qualquer programa os aceitará. Por outro lado, atalhos como~
e~-
fazem parte do shell.cd -
; não sabia que existia.Você pode usar $ (pwd), ele resolverá a saída do comando pwd.
Exemplo:
fonte
echo $PWD
../ representa o diretório atual. Então você pode usar o comando
cp ~/anotherdir/dir2/file ./
Isto copiará o arquivo "arquivo" no diretório de trabalho atual.fonte
ln -s /some/long/path/to/get/to/cake
sem um segundo argumento , ele colocará ocake
link simbólico em sua corrente diretamente. Muito bom para os preguiçosos. Salva a.
.Para usar o diretório atual como o diretório de destino, use um único ponto '
.
'Resposta longa
Usando seu exemplo, você digitaria:
cp ~/anotherdir/dir2/file .
Para ver o ponto
.
,..
e../../
nomes de diretório em ação, copie e cole os seguintes comandos em seu Terminal:A saída do comando em árvore aparece assim:
A
.
saída na parte superior da árvore representa o novo diretório atual,a
que é o avô doa/b/c
qual navegamos usando ocd ../../
comando Debaixoa
vemos os sub-diretóriosa/b
,a/b/c
ea/b/c2
Análise linha por linha
Primeiro, criamos 4 diretórios em uma linha usando
&&
para unir várias linhas.Em seguida, mudamos para o diretório
a/b/c
, que é o diretório atual para os seguintes comandos de cópia:cp
), definimos o destino para o diretório atual ( c ) com.
...
.../c2
Então, como declarado anteriormente, alteramos o diretório atual para
a
e executamos otree
comando para exibir todos os diretórios e arquivos ema
.Limpar
Depois que terminamos, removemos os três diretórios e arquivos com:
fonte
A variável de ambiente para o diretório atual é $ PWD
fonte
Você pode usar o ponto (
.
), a~+
expansão do til , opwd
comando ou a variável $ PWD para representar o diretório ativo atual (CWD). Todos estes comandos podem fazer isso:mv file_old_dir .
mv file_old_dir ~+
mv file_old_dir $(pwd)
mv file_old_dir $PWD
fonte
Sim (como outros observaram), o diretório atual é ".", É por isso que você pode iniciar programas / script a partir do diretório atual com ./script (apenas o script não funcionará, a menos que. Não faça parte do PATH, o que não é recomendado Apesar). Usar $ PWD ou $ (pwd) é um pouco exagerado, mesmo que outros tenham mencionado que usar um caractere de ponto único seja mais curto, com certeza :) ".." é o diretório pai, com certeza "/" é a raiz. Também é bom mencionar que "cd -" o colocará no diretório anterior onde você estava antes de alterar o cwd (diretório de trabalho atual). Também pode ser útil no trabalho diário. Um único comando "cd" sem nenhum outro na linha de comando o colocará em "~" (sua casa).
fonte
$PWD
não é um exagero ao criar links simbólicos para caminhos absolutos.