Cuando uso el comando cp o move en una ventana de terminal, actualmente estoy con bash en cierta carpeta como esta.
NES@server:~/Desktop/dir1$
Y ahora quiero copiar un archivo desde aquí ~/anotherdir/dir2
en la carpeta elegida actual en bash (dir1), usaría el comando
cp ~/anotherdir/dir2/file ~/Desktop/dir1
¿existe una cadena de acceso directo para hacer referencia al directorio elegido actual? Entonces, en este ejemplo, no tengo que proporcionar la ruta completa al directorio de destino, pero el comando sabe que debería usar el directorio elegido actual en bash. es decir, como ~ significa el directorio de inicio?
..
significa un directorio más bajo. Se puede usar varias veces, es decircd ../..
..
lo llevará al directorio padre de su directorio actual. Buen punto.popd
ypushd
eso se está convirtiendo en un ensayo..
y..
son de nivel de sistema de archivos, por lo que cualquier programa los aceptará. Por otro lado, los accesos directos como~
y~-
son parte del shell.cd -
; No sabía que existía.Puede usar $ (pwd), se resolverá a la salida del comando pwd.
Ejemplo:
fuente
echo $PWD
../ representa el directorio actual. Entonces puede usar el comando
cp ~/anotherdir/dir2/file ./
Esto copiará el archivo "archivo" en el directorio de trabajo correcto.fuente
ln -s /some/long/path/to/get/to/cake
tiene un segundo argumento , colocará elcake
enlace simbólico en su actual directamente. Muy bueno para los perezosos. Guarda a.
.Para usar el directorio actual como el directorio de destino, use un solo punto '
.
'Respuesta larga
Usando su ejemplo, escribiría:
cp ~/anotherdir/dir2/file .
Para ver el punto
.
,..
y../../
los nombres de directorio en la acción, copiar y pegar los siguientes comandos en la terminal:El resultado del comando de árbol aparece así:
La
.
salida en la parte superior del árbol representa el nuevo directorio actuala
que es el abuelo ala/b/c
que navegamos usando elcd ../../
comando. Debajoa
vemos los subdirectoriosa/b
,a/b/c
ya/b/c2
Análisis línea por línea
Primero creamos 4 directorios en una sola línea
&&
para unir varias líneas.Luego cambiamos al directorio
a/b/c
, que es el directorio actual para los siguientes comandos de copia:cp
) establecemos el destino en nuestro directorio actual ( c ) con.
...
.../c2
Luego, como se indicó anteriormente, cambiamos el directorio actual
a
y ejecutamos eltree
comando para mostrar todos los directorios y archivos ena
.Limpiar
Una vez que hayamos terminado, eliminamos los tres directorios y archivos con:
fuente
La variable de entorno para el directorio actual es $ PWD
fuente
Puede usar el punto (
.
), la~+
expansión de tilde , elpwd
comando o la variable $ PWD para representar el directorio de trabajo actual (CWD). Todos estos comandos pueden hacer eso:mv file_old_dir .
mv file_old_dir ~+
mv file_old_dir $(pwd)
mv file_old_dir $PWD
fuente
Sí (como otros han señalado), el directorio actual es ".", Por eso puede iniciar programas / script desde el directorio actual con ./script (solo el script no funcionará a menos que. No sea parte de PATH, lo cual no se recomienda aunque). Usar $ PWD o $ (pwd) es un poco exagerado, incluso si otros mencionaron que usar un solo punto es más corto, seguro :) ".." es el directorio padre, seguro que "/" es la raíz. También es bueno mencionar que "cd -" lo colocará en el directorio anterior donde estaba antes de cambiar cwd (directorio de trabajo actual). También puede ser útil en el trabajo diario. Un solo comando "cd" sin ningún otro en la línea de comando lo colocará en "~" (su hogar).
fuente
$PWD
no es una exageración al crear enlaces simbólicos a rutas absolutas.