Siempre que no exista un directorio con este nombre, cambió el nombre del archivo a openvpn
ubicado en su directorio raíz /
. Para revertir esto, ejecute:
sudo mv /openvpn /etc/MyFile.conf
Si el directorio existía, movió el archivo dentro de él, entonces la reversión es:
sudo mv /openvpn/MyFile.conf /etc/
Para moverlo a un subdirectorio existente del directorio actual, puede ejecutar cualquiera de estos, que usan rutas relativas :
mv MyFile.conf openvpn
mv MyFile.conf openvpn/
mv MyFile.conf ./openvpn
mv MyFile.conf ./openvpn/
.
es un enlace al directorio actual, por lo que ./
al comienzo de una ruta significa "en este directorio". La barra diagonal al final significa que openvpn
es un directorio y desea mover el archivo dentro de él. Si no se proporciona, el archivo se trasladó a ella si existe un directorio con este nombre, de lo contrario el archivo se cambió el nombre a openvpn
. Con un /
al final, mv
le avisará si falta el directorio y no cambia el nombre, por lo que esa es la forma segura si no desea cambiar el nombre.
Si su ruta comienza /
por otro lado, es una ruta absoluta independientemente del directorio de trabajo actual, siempre es relativa al directorio raíz /
. Usando rutas absolutas para el archivo y el destino, su comando se vería así:
mv /etc/MyFile.conf /etc/openvpn
mv /etc/MyFile.conf /etc/openvpn/
Otras lecturas
sudo mv /openvpn/MyFile.conf /etc/
primero con el comando. En el escenario probable, el directorio no existía, solo le dará un error (probablemente "No es un directorio") y no tocará el sistema de archivos. Entonces, solo puedes hacersudo mv /openvpn /etc/MyFile.conf
.Necesitas usar
para mover el
MyFile.conf
archivo alopenvpn
subdirectorio de/etc/
.Por otra parte
movería el archivo al
/
directorio comoopenvpn
(es decir, renombra comoopenvpn
) en su lugar (suponiendo que el/openvpn
directorio no exista).fuente
Cuando mueve un archivo, le dice al sistema operativo el directorio en el que desea colocarlo o la nueva ruta que desea asignarle.
Le dijiste al sistema operativo "/ openvpn". Así que va a hacer exactamente eso: verifique si / openvpn existe (es decir, un objeto llamado "openvpn" ubicado en el directorio raíz) y es un directorio, y si es así, mueva su archivo a él, o si / openvpn es un archivo o no existe, cambie el nombre y mueva su archivo para que ahora sea accesible como / openvpn.
Lo que quería que hiciera era moverlo dentro de un directorio "openvpn", que se encuentra en su directorio actual , no uno que esté en el directorio raíz del sistema de archivos (que es lo que significa el "/" inicial). Así que tenía que apuntar a ese directorio en el comando mover, no a la ruta absoluta "/ openvpn". Cualquiera de estos funcionará:
mv MyFile.conf openvpn
- busca en mi directorio actual este "openvpn"mv MyFile.conf /etc/openvpn
- busque la ruta absoluta / etc / openvpnmv MyFile.conf openvpn/
- mira en mi directorio actual, para un directorio llamado openvpnmv MyFile.conf ./openvpn
- hace que el "directorio actual" sea aún más obvioVersión corta: probablemente usó "/" para referirse a "mi directorio actual", por lo tanto "/ openvpn" para referirse a "openvpn que está en mi directorio actual". Pero un "/" inicial solo significa "el directorio raíz", por lo que "/ openvpn" significa "openvpn en el directorio raíz". Lo que necesitaba era simplemente usar "openvpn" o "openvpn /", que significa "openvpn en mi directorio actual ".
fuente
Cualquier ruta que comience con
/
una ruta absoluta, no relativa.Si todas las rutas fueran siempre relativas al directorio actual, ¿cómo lo haría
cd /etc
en primer lugar? Tendría que hacerlocd ../../../../../etc
y esperar que haya suficientes niveles de..
, o simplemente siga haciéndolocd ..
hasta que llegue al directorio raíz.O necesitaría alguna otra sintaxis para expresar rutas absolutas. Pero Unix decidió el
/
significado absoluto, cualquier otra cosa relacionada con el directorio de trabajo actual del proceso. Asímv MyFile.txt openvpn
funcionaría.Y no, no funcionaría bien inferir absoluto versus relativo a partir de archivos existentes o no. No queremos
mkdir
que las llamadas al sistema traten las rutas de manera diferentechdir
o lasrename
llamadas al sistema, y hacer que elmv
programa lo haga solo deja espacio para la inconsistencia entremv
y algún otro programa que tome un nombre de archivo de salida.mv
ya es especial porque cuando elrename()
destino es un directorio, agrega el nombre del archivo de origen a ese directorio de destino e intenta nuevamente. Pero tenga en cuenta que una estrategia de implementación simple se basa en que la primerarename()
llamada del sistema falla conEEXIST
oEISDIR
. Entonces tenemos que saber si una ruta es relativa o absoluta antes de verificar el sistema de archivos.(Early Unix se ejecutó en computadoras lentas, donde las verificaciones adicionales si existía un directorio podrían significar E / S adicionales si no estaba en caché, o más presión sobre el almacenamiento en caché de directorios. Pero creo que los argumentos de cordura / corrección son suficientes para explicar por qué su primera suposición no era una forma plausible para que el sistema funcionara, sin recurrir a argumentos históricos de eficiencia).
fuente
Para completar las otras respuestas:
es lo mismo que para Windows
El sistema de archivos en Linux está pensado de acuerdo con el estándar de jerarquía del sistema de archivos , o FHS para abreviar. le ayuda a saber dónde debe colocarse un archivo según su naturaleza y contenido.
La primera carpeta (equivalente a
c:
en Windows) es/
.fuente