0 votos

Usando la terminal, ¿cómo copiar y pegar una carpeta, como lo haría desde el buscador?

Quiero hacer clic derecho, copiar. Cambiar directorio, clic derecho pegar. Pero usando la terminal.

La cosa es pbcopy < directory_name_here falla con "oh no, esto es un directorio. No puedo hacer algo tan complejo".

No quiero saber cada camino de todo, así que me niego a hacer algo como:

cp ~/path/to/source ~/path/to/destination

Seguro que a otros les parece bien esa tontería, no gracias.

Así que hice lo que cualquier persona razonable haría y simplemente creé un directorio ~/.pbcopy y estoy 100% contento de cd to destination entonces cp -R directory_name_here ~/.pbcopy entonces cd to destination y cp ~/.pbcopy/ upsie

Y aquí tengo un problema. Dos en realidad:

  1. cp no copió el directorio, sino sólo sus hijos. 100% no es lo que quiero.
  2. Mi pasta improvisada quiere un nombre de directorio, creo. ¿Podría cp source . ¿Trabajar? ¿El "portapapeles" contenía la carpeta principal?

Vale, lo mío no funciona. ¿Qué funcionaría? Preguntaré de nuevo. No quiero recordar y copiar pegar rutas, quiero copiar directorio y contenido al portapapeles y pegar todo el contenido una vez que haya cambiado al directorio apropiado. ¿Cómo hacer esto?

7voto

Douglas Puntos 10417

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.

Drag_Drop path from Terminal Animation

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.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X