0 votos

Usando la terminal, ¿cómo se copia pega una carpeta, como lo harías desde el buscador?

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

El problema es que pbcopy < directory_name_here falla con "oh no, esto es un directorio. ¡No puedo hacer algo tan complejo!"

No quiero saber cada ruta de todo, así que me rehúso a hacer algo como:

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

Estoy seguro de que otras personas están bien con ese sinsentido, no gracias.

Entonces hice lo que cualquier persona razonable haría y simplemente creé un directorio ~/.pbcopy y estoy 100% satisfecho con cd to destination luego cp -R directory_name_here ~/.pbcopy luego cd to destination y cp ~/.pbcopy/ upsie

Y aquí tengo un problema. En realidad, dos:

  1. cp no copió el directorio, solo sus hijos. 100% no lo que quiero.
  2. Mi pegar improvisado necesita un nombre de directorio, creo. ¿Funcionaría cp source .? ¿El "portapapeles" contenía la carpeta principal?

De acuerdo, mi cosa no funciona. ¿Qué funcionaría? Lo preguntaré de nuevo. No quiero recordar y copiar y pegar rutas, quiero copiar el directorio y su contenido al portapapeles y pegar todo el contenido una vez que haya cambiado al directorio apropiado. ¿Cómo hacer esto?

3 votos

En mi humilde opinión, es razonable utilizar un administrador de archivos basado en terminal como vifm, midnight commander, ranger, etc.

4 votos

¿Puedo preguntar por qué estás usando Terminal? ¿Estás creando un script? Si deseas funcionalidad de GUI, ¿por qué no simplemente usar Finder?

0 votos

El "portapapeles" del que hablas para transferencias de archivo/carpeta no es el mismo mecanismo de 'portapapeles' que se encuentra al copiar y pegar texto e imágenes en otros lugares de macOS. Puede que quieras experimentar con el comando Terminal mv, el cual se explica en esta página de Soporte de Apple.

7voto

Douglas Puntos 10417

No quiero saber todos los caminos de todo, así que me niego a hacer algo como...

La mayoría de nosotros tampoco recordamos caminos largos y complejos, por lo que esto es muy relatable. Por ejemplo, hay una excelente herramienta de comando llamada "Airport Utility" (airport) pero no se encuentra en el PATH. Usar find o locate te dará un camino inconcebible de

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport

Es imposible recordar esto, pero es solo un ejemplo (por cierto, uso un alias para este comando). No se espera que nadie recuerde cada camino de directorio. Sin embargo, tenemos una serie de herramientas que podemos usar para hacer la vida un poco más simple. A continuación se muestra solo una muestra de las herramientas que uso.

Arrastrar y soltar desde Finder a Terminal

Si ya tienes el archivo/carpeta abierto, no tienes que recordar todo el camino. Simplemente comienza tu comando de forma apropiada (copiando una carpeta en este ejemplo) cp -R luego arrastra la carpeta desde Finder a Terminal y el camino se completará automáticamente.

Animación de arrastrar y soltar camino desde Terminal

Luego continúa el comando según sea necesario. Aquí estoy copiando en mi directorio actual, por lo que uso un punto o un punto . pero podría arrastrar otro archivo/carpeta desde Finder como destino.

Uso de funciones integradas en el Shell

Tenemos varias de las cuales usar:

  • Completado de pestañas. Esto está disponible tanto en los shells de Bash (predeterminado para Mojave y anteriores) como en los shells de Zsh (predeterminado para Catalina y posteriores). Al ingresar un archivo o carpeta, simplemente comience con los primeros caracteres, presione Tab y completará automáticamente el resto de la línea. Por ejemplo:

     cp - R /Users/al

    Completará automáticamente el resto de la carpeta hasta que necesite más entrada de tu parte para continuar:

     cp -R /Users/allan/Desk   y así sucesivamente...

Puedes usar esto tanto para la fuente como para el destino. Simplemente completa con pestañas cada directorio

  • pwd Muestra el directorio de trabajo actual. También está disponible como variable, $PWD. Por ejemplo, asumiendo que estás profundamente en una carpeta oscura, y quieres copiar algo como un archivo o carpeta a una carpeta en tu Escritorio, simplemente emite el comando

    cp -R $PWD/carpeta_a_copiar ~/Escritorio/carpeta_destino
  • Expansión de Tilde ~ Este es el atajo a tu carpeta de inicio que también se hace referencia convenientemente mediante la variable de shell $HOME. Si quisieras copiar todos tus Documentos a una unidad USB, simplemente emite el comando de 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 Te permiten empujar directorios, quitarlos de la pila y listar los contenidos de la pila de directorios que es LIFO o Last In/First Out. (Piensa en una pila como una pila de panqueques; siempre pones el más nuevo en la parte superior y quitas el de arriba al comer uno).

    • dirs Listará todos los directorios en tu pila (dirs -p muestra una entrada por línea). El primer valor es siempre el directorio de trabajo actual. Este permanecerá así, hasta que "empujes" algunas entradas en la pila. Aquí tienes 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 empujé dos veces, pero ilustra perfectamente esta función)

    • pushd "empujará" el directorio actual o uno que especifiques a la pila. Así es como poblé la pila para el punto anterior. Ejemplos:

       `pushd` 
       `pushd ~/Desktop/My_Folder`
    • popd "quitará" la última entrada de directorio o la que especifiques (se puede determinar con el comando dirs) Por ejemplo, podemos usar alguna expansión de comando para obtener el 3er directorio en nuestra pila con el comando popd +3 (3er elemento desde la parte superior) o popd -3 (para el 3er elemento desde abajo)

      Así que, 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      Copiará cualquier carpeta de la parte superior de la pila al directorio de trabajo actual
      
       cp -R `popd` `popd`         Copiará la primera carpeta en la pila a la segunda carpeta en la pila
      
       cp -R `popd +2` `popd -4`   Copiará la 2da desde la parte superior a la 4ta desde abajo

    Por favor, ten en cuenta que esto no es un tutorial exhaustivo sobre pushd, popd y dirs. Hay muchas opciones (banderas) que puedes usar con cada una para trabajar mejor con la pila de directorios.

0 votos

Sí, pushd y popd suenan exactamente a lo que necesito. Voy a consultar las páginas del manual, gracias.

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