Desde que um diretório com esse nome não exista, você renomeou o arquivo para openvpn
localizado em seu diretório raiz /
. Para reverter isso, execute:
sudo mv /openvpn /etc/MyFile.conf
Se o diretório existisse, você moveu o arquivo dentro dele, a reversão é:
sudo mv /openvpn/MyFile.conf /etc/
Para movê-lo para um subdiretório existente do diretório atual, você pode executar qualquer um destes - esses usam caminhos relativos :
mv MyFile.conf openvpn
mv MyFile.conf openvpn/
mv MyFile.conf ./openvpn
mv MyFile.conf ./openvpn/
.
é um link para o diretório atual; portanto, ./
no início de um caminho significa "neste diretório". A barra no final significa que openvpn
é um diretório e você deseja mover o arquivo dentro dele. Se você não fornecê-la, o arquivo será movido para ele, se um diretório com este nome existe, então o arquivo será renomeado para openvpn
. Com um /
no final, mv
avisará se o diretório está ausente e não será renomeado, de modo que é o caminho seguro se você não quiser renomear.
Se o seu caminho começa com, /
por outro lado, é um caminho absoluto, independentemente do diretório de trabalho atual, é sempre relativo ao diretório raiz /
. Usando caminhos absolutos para o arquivo e o destino, seu comando ficaria assim:
mv /etc/MyFile.conf /etc/openvpn
mv /etc/MyFile.conf /etc/openvpn/
Leitura adicional
sudo mv /openvpn/MyFile.conf /etc/
comando primeiro. No cenário provável, o diretório não existia, apenas apresentava um erro (provavelmente "Não é um diretório") e não tocava no sistema de arquivos. Então, você pode simplesmente fazersudo mv /openvpn /etc/MyFile.conf
.Você precisa usar
para mover o
MyFile.conf
arquivo para oopenvpn
subdiretório de/etc/
.Por outro lado
moveria o arquivo para o
/
diretório comoopenvpn
(ou seja, renomeie comoopenvpn
) em vez disso (assumindo que o/openvpn
diretório não exista).fonte
Ao mover um arquivo, você informa ao sistema operacional o diretório em que deseja colocá-lo ou o novo caminho que deseja atribuir.
Você disse ao sistema operacional "/ openvpn". Então, será feito exatamente isso - verifique se / openvpn existe (ou seja, um objeto chamado "openvpn" localizado no diretório raiz) e é um diretório; se for, mova seu arquivo para ele, ou se / openvpn é um arquivo ou não existir, renomeie e mova seu arquivo, para que agora seja acessível como / openvpn.
O que você queria fazer era movê-lo para um diretório "openvpn", que pode ser encontrado no diretório atual , e não no diretório raiz do sistema de arquivos (que é o que significa "/" principal). Então você tinha que apontar para esse diretório no comando move, não para o caminho absoluto "/ openvpn". Qualquer um destes irá funcionar:
mv MyFile.conf openvpn
- procure no meu diretório atual por este "openvpn"mv MyFile.conf /etc/openvpn
- procure o caminho absoluto / etc / openvpnmv MyFile.conf openvpn/
- procure no meu diretório atual, por um diretório chamado openvpnmv MyFile.conf ./openvpn
- torna o "diretório atual" ainda mais óbvioVersão curta - você provavelmente usou "/" para significar "meu diretório atual", portanto "/ openvpn" significa "openvpn que está no meu diretório atual". Mas um "/" inicial significa apenas "o diretório raiz", então "/ openvpn" significava "openvpn no diretório raiz". O que você precisava era simplesmente usar "openvpn" ou "openvpn /", significando "openvpn no meu diretório atual ".
fonte
Qualquer caminho que começa com
/
é um caminho absoluto, não relativo.Se todos os caminhos fossem sempre relativos ao diretório atual, como você
cd /etc
em primeiro lugar? Você precisariacd ../../../../../etc
e esperaria que houvesse níveis suficientes de..
, ou continue fazendocd ..
até chegar ao diretório raiz.Ou você precisaria de outra sintaxe para expressar caminhos absolutos. Mas o Unix decidiu ter um
/
significado absoluto, sendo qualquer outra coisa relativa ao diretório de trabalho atual do processo. Entãomv MyFile.txt openvpn
funcionaria.E não, não funcionaria bem para inferir absoluto vs. relativo de arquivos existentes ou não. Não queremos
mkdir
que as chamadas do sistema tratem os caminhos de maneira diferentechdir
ou asrename
chamadas do sistema, e fazer com que omv
programa faça isso apenas deixa espaço para inconsistência entremv
e algum outro programa que usa um nome de arquivo de saída.mv
já é especial porque quando orename()
destino é um diretório, ele anexa o nome do arquivo de origem ao diretório de destino e tenta novamente. Mas observe que uma estratégia simples de implementação depende da primeirarename()
chamada do sistema falhar comEEXIST
ouEISDIR
. Portanto, precisamos saber se um caminho é relativo ou absoluto antes de verificar o sistema de arquivos.(O Unix inicial era executado em computadores lentos, onde verificações extras se um diretório existia poderiam significar E / S extra se não estivesse armazenado em cache, ou mais pressão no cache do diretório. Mas acho que os argumentos de sanidade / correção são suficientes para explicar por que sua primeira tentativa não era uma maneira plausível para o sistema funcionar, sem recorrer a argumentos históricos de eficiência.)
fonte
Para completar as outras respostas:
é o mesmo que, para Windows
O sistema de arquivos no linux é pensado de acordo com o padrão de hierarquia do sistema de arquivos , ou abreviado FHS . ajuda a saber onde um arquivo deve ser colocado, dependendo de sua natureza e conteúdo.
A primeira pasta (equivalente a
c:
no Windows) é/
.fonte