No quiero conocer todos los caminos de todo, así que me niego a...
La mayoría de nosotros tampoco recordamos trayectorias largas y complejas, así que esto es muy relatable. Por ejemplo, existe una excelente herramienta de comandos llamada "Airport Utility" ( airport
) pero no se encuentra en el PATH. Utilizando find
o locate
te llevará por un camino impío de
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport
Esto es imposible de recordar, pero es sólo un ejemplo (yo uso un alias para este comando, por cierto). No se espera que nadie recuerde todas las rutas de los directorios. Sin embargo, tenemos una serie de herramientas que podemos utilizar para hacernos la vida un poco más sencilla. Lo que sigue es sólo una muestra de las herramientas que utilizo.
Arrastrar y soltar desde el Finder al Terminal
Si ya tienes el archivo/carpeta, no tienes que recordar toda la ruta. Simplemente inicie su comando como corresponda (copiando una carpeta en este ejemplo) cp -R
luego arrastre la carpeta desde Finder a Terminal y la ruta se rellenará automáticamente.
A continuación, continúe con el comando según sea necesario. Aquí estoy copiando a mi directorio actual por lo que uso un punto o punto .
pero podría arrastrar otro archivo/carpeta desde Finder como destino.
Uso de Shell Builtins
Tenemos varios entre los que elegir:
-
Completar pestaña. Esta opción está disponible tanto en Bash (por defecto en Mojave y versiones anteriores) como en Zsh (por defecto en Catalina y versiones posteriores). Cuando introduzca un archivo o una carpeta, simplemente comience con los primeros caracteres y pulse ⇨Tab y completará automáticamente el resto de la línea por ti. Por ejemplo:
cp - R /Users/al<⇨Tab>
Rellenará automáticamente el resto de la carpeta hasta que necesite más datos tuyos para continuar:
cp -R /Users/allan/Desk<⇨Tab> ← and so on and so on...
Puede utilizarlo tanto para el origen como para el destino. Sólo tienes que completar tu camino a través de cada directorio
-
pwd
→ Muestra el directorio de trabajo actual. También está disponible como variable, $PWD. Por ejemplo, suponiendo que estás en una carpeta oscura, y quieres copiar algo como un solo archivo o carpeta a una carpeta en tu Escritorio, sólo tienes que ejecutar el comando
cp -R $PWD/folder_to_copy ~/Desktop/destination_folder
-
Tilde ~
Expansión → Este es el acceso directo a su carpeta de inicio que también está convenientemente referenciada por la variable shell $HOME
. Si quisieras copiar todos tus Documentos a una unidad USB, podrías simplemente ejecutar el comando Terminal:
cp -R $HOME/Documents /Volumes/My_Backup_USB/Documents
o igualmente válido
cp -R ~/Documents /Volumes/My_Backup_USB/Documents
-
pushd
, popd
y dirs
→ Permite insertar directorios en la pila de directorios, extraerlos de ella y listar su contenido. que es LIFO o Last In/Fist Out. (Piensa en una pila como en una pila de tortitas; siempre pones la más nueva encima y quitas la de arriba cuando te comes una).
-
dirs
listará todos los directorios de tu pila ( dirs -p
muestra una entrada por línea). El primer valor es siempre el directorio de trabajo actual. Esto seguirá siendo así, hasta que "empujes" algunas entradas a la pila. He aquí un ejemplo de una pila de directorios:
dirs -lp
/Users/allan/Desktop/Email to Process
/Users/allan/Desktop/Saved Images to Process
/Users/allan/Desktop/eBooks to Process
/Users/allan/Desktop
/Users/allan
/Users/allan/Desktop
( Desktop
está ahí dos veces porque accidentalmente lo pulsé dos veces, pero ilustra perfectamente esta función)
-
pushd
"empujará" el directorio actual o un directorio que especifiques a la pila. Así es como he rellenado la pila del punto anterior. Ejemplos:
`pushd`
`pushd ~/Desktop/My_Folder`
-
popd
se "saltará" la última entrada del directorio o la que usted especifique (puede determinarse con el dirs
) Por ejemplo, podemos utilizar alguna expansión de comandos para obtener el tercer directorio de nuestra pila con el comando popd +3
(3er elemento desde arriba) o popd -3
(para la 3ª posición desde abajo)
Así, una vez que sepas dónde están tus directorios en la pila, puedes usarlos con la expansión de comandos:
cp -R `popd` ~/Desktop ← Will copy whatever folder from top of stack to present working directory
cp -R `popd` `popd` ← Will copy the first folder on the stack to second folder on the stack
cp -R `popd +2` `popd -4` ← Will copy the 2nd from top to 4th from bottom
Tenga en cuenta que éste no es un tutorial exhaustivo sobre pushd
, popd
y dirs
. Hay muchas opciones (banderas) que puede utilizar con cada uno para trabajar mejor con la pila de directorios.