Arte conceptual de Bash en un escritorio Ubuntu Linux

Cómo copiar archivos usando el comando «instalar» en Linux

Arte conceptual de Bash en un escritorio Ubuntu LinuxFatmawati Achmad Zaenuri / Shutterstock.com

install es un comando de copia de archivos versátil en Linux y macOS. Es perfecto para el usuario experimentado que busca eficiencia. Lea este artículo para descubrir cómo trabajar de manera más inteligente, no más difícil.

Espera, ¿no es para instalar el software?

los install comando puede tener el nombre más engañoso de todos los comandos de Linux. En realidad, no instala ningún software. Si está intentando instalar un paquete de software desde la línea de comandos en Ubuntu u otra distribución basada en Debian, use el apt-get pedido. En otras distribuciones de Linux, utilice la herramienta de gestión de paquetes de su distribución de Linux, por ejemplo, dnf en Fedora o zypper en openSUSE.

Entonces, ¿qué hace la instalación?

En una palabra install combina elementos de la cp (Copiar), chown (Cambio de propietario), chmod (modo de cambio), mkdir (crear un directorio), y strip (símbolos de banda) pedidos. Te permite utilizar las funciones de todos ellos en una sola acción.

los install el comando puede:

  • Copie archivos como el cp pedido.
  • Elija si desea sobrescribir archivos existentes.
  • Cree el directorio de destino si no existe, como mkdir.
  • Establecer indicadores de permisos de usuario para archivos, al igual que el chmod pedido.
  • Defina el propietario de los archivos, al igual que el chown pedido.
  • Elimine el equipaje no esencial de los archivos ejecutables, al igual que el strip pedido.

A pesar de todas estas características, el install el pedido no tiene demasiado muchas opciones confrontar.

instalar página de manual

Cuándo lo usarías

los install Es probable que el comando no se utilice todos los días. Esto es útil, pero solo para determinadas situaciones. Un escenario donde install tiene sentido es el desarrollo de software. Digamos que está programando una nueva utilidad. Deberá realizar pruebas fuera del entorno de desarrollo. Para hacer esto, debe copiar los nuevos archivos de programa a un directorio de prueba. Es posible que deba crear el directorio de prueba y deberá establecer los permisos y la propiedad correctos para los archivos.

Dado que el desarrollo es una actividad iterativa, puede terminar realizando esta secuencia de acciones muchas veces. los install el orden hace todo el trabajo pesado por usted. Finalmente, cuando su nueva utilidad esté lista para implementarse, puede usar install para copiarlo con los permisos adecuados a su ubicación de trabajo final.

Un ejemplo

Un programador está trabajando en una nueva utilidad, llamada ana. Consiste en un archivo binario ejecutable y una base de datos. Después de la prueba, debe copiarse a /usr/local/bin para que esté disponible para todos los usuarios del sistema Linux. Deberá reemplazar los nombres de archivo y rutas de directorio en nuestro ejemplo con los archivos y rutas que usa en su computadora cuando usa install.

Hasta que esté listo para ser publicado, se probará en un directorio llamado ~/test/ana. Miembros de geek grupo tendrá permisos de lectura y ejecución. Otros usuarios también tendrán permisos de lectura y ejecución. los install El comando utiliza la misma representación numérica para las autorizaciones que chmod Acaso. Nuestro programador decidió que los permisos deberían establecerse en:

  • Propietario: Leer, escribir y realizar.
  • Grupo: Leer y ejecutar.
  • Otros: Ejecutar solamente.

Cómo utilizar el install Pedido

El directorio de trabajo de nuestro programador ficticio es ~/work. Escribió el programa, lo compiló y produjo un binario llamado ana. Ya ha creado el archivo de base de datos que ana caminar con Words.db. Por lo tanto, los dos archivos están listos para ser probados. Echemos un vistazo a ellos:

ls -l ana Words.db

los ana la utilidad que acaba de escribir crea anagramas a partir de una oración proporcionada en la línea de comandos. Las pruebas de verificación son bastante sencillas.

prueba la utilidad ana en el directorio de trabajo

Nuestro programador invocado ana con la frase «cookie» y todo se ve bien. Ahora quiere copiar estos dos archivos al ~/test/ana para ver si la nueva utilidad funciona correctamente fuera del entorno de desarrollo. Emite el siguiente comando:

install -D -v ana Words.db -t ~/test/ana

Instale el comando en / test / ana

Las opciones utilizadas en la línea de comando fueron:

  • D: Cree directorios, incluidos los directorios principales, si es necesario.
  • v: detallado, enumera cada directorio a medida que se crea y cada copia de archivo a medida que se ejecuta.
  • t: Directorio de destino.

Podemos ver eso install creó el ~/test directorio, luego crea el ~/test/ana directorio telefónico. Los archivos se enumeran uno por uno a medida que se copian en el directorio de destino.

Listar archivos en ~/test/ana confirma que se copiaron correctamente.

ls -l

ls en el directorio / test / ana

El siguiente paso es probar el ana utilidad invocándola en el ~/test/ana directorio telefónico.

pruebe la utilidad ana en el directorio / test / ana

La utilidad funciona como se esperaba, lo cual es genial. Sin embargo, los permisos no son correctos. El requisito es definir los miembros del grupo. geek tener permisos de lectura y ejecución, y que otros usuarios solo tengan permisos de ejecución.

Podemos solucionar ambos problemas de forma bastante sencilla con el siguiente comando. Tenga en cuenta el uso de sudo para ejecutar el comando con permisos de root. los -o y -g y las opciones lo requieren. Se nos pedirá nuestra contraseña cuando realicemos el pedido.

sudo install -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana

instalar comando con opciones de respaldo y configuración previa

  • los -b La opción (copia de seguridad) crea copias de seguridad de los archivos antes de que se sobrescriban.
  • los -S La opción (sufijo) define el sufijo de los archivos de respaldo. Si no proporciona un sufijo a ~ (tilde) se utiliza. pedimos install usar un sufijo de .bak.
  • Establecemos que el propietario del archivo sea dave utilizando el -o opción (propietario).
  • los -g La opción (grupo) requiere el nombre de un grupo. Este se convierte en el grupo propietario de los archivos. El grupo que vamos a utilizar se llama geek.
  • los -m (modo) define los modos de archivo para archivos, utilizando el estándar chmod sintaxis numérica.

Ya no necesitamos usar el -D (crear directorios), porque sabemos que el directorio de prueba ya existe. También hemos omitido el -v opción (detallado). Enumere los archivos en nuestro ~/test/ana El directorio nos muestra los detalles del archivo:

ls -l

ls en el directorio / test / ana

Esto confirma que se han cumplido todos nuestros requisitos.

  • Los archivos se copiaron al directorio de prueba.
  • Los permisos se han configurado correctamente.
  • dave es el propietario de los archivos.
  • los geek grupo es el grupo que posee los dos archivos.
  • Se hicieron copias de seguridad de cada archivo, llamados ana.bak y Words.db.bak.

Todo esto se logró mediante el uso de un solo comando. Aseado.

Nuestro programador realiza los últimos cambios en la utilidad y los vuelve a compilar. Los archivos que han cambiado deben copiarse a la ~/test/ana directorio de la ~/work directorio telefónico. Podemos hacer esto usando el -C (comparar) opción. Si el archivo de origen y el archivo de destino son iguales, el archivo de origen no se copia.

sudo install -C -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana

instalar comando con la opción -C comparar

La lista de archivos en el directorio de destino nos muestra que el tamaño del archivo del ana el archivo ha cambiado. Es mas grande que el ana.bakarchivar. La marca de tiempo en ana también ha cambiado. Estos cambios se deben al hecho de que aquí se copió la nueva versión del archivo.

ls -l

Está en / test / ana con la prueba de utilidad para ana

El tamaño del archivo y la marca de tiempo del Words.db el archivo no ha cambiado. No se han realizado cambios en el Words.db archivo, por lo que no se copió. En un proyecto con muchos archivos, el -C La opción (comparar) puede ahorrar mucho tiempo y cancelar la suscripción del disco duro al copiar solo los archivos que se han modificado.

El programador probó de nuevo que el ana la utilidad continúa funcionando.

Es hora de usar install para copiar los archivos al /usr/local/bin directorio telefónico. Esto hará que la nueva utilidad esté disponible para todos los usuarios de esta computadora Linux. Sabemos que /usr/local/bin existe, por lo que no es necesario crear este directorio. Podemos usar una versión modificada de nuestro último comando.

Cambiamos el directorio de destino para que sea /usr/local/bin. Hemos eliminado el -C (comparar) porque todavía no hay copias de estos archivos en el directorio de destino, por lo que no hay nada que comparar. Del mismo modo, no hay nada que guardar, por lo que podemos eliminar el -b (guardar) y la opción -S (sufijo) opción.

sudo install -o dave -g geek -m 751 ana Words.db -t /usr/local/bin

instalar copiando los archivos en / usr / local / bin

Podemos enumerar que los archivos llegaron /usr/local/bin:

ls -l

ls de / usr / local / bin

Y como prueba final, cambiemos los directorios a nuestro directorio de inicio y veamos si podemos invocar nuestra nueva utilidad desde allí.

prueba de utilidad ana

Tenga en cuenta que no es necesario que preceda el ana ordenar con ./ lo que significa que se ejecuta desde /usr/local/bin. Misión cumplida.

Mencionamos que la instalación puede eliminar tablas de símbolos redundantes y otro equipaje del archivo binario, para reducir su tamaño. Hagámoslo ahora. Tenga en cuenta que el siguiente comando no incluye Words.db. Esto se debe a que Words.db es un archivo de base de datos, no un ejecutable binario. Para copiar y reducir el archivo binario ana podemos usar el siguiente comando. Agregamos la opción -s (encoger) con una «s» minúscula. Agregamos la opción -b (guardar) y la opción -S (sufijo), con una «S» mayúscula.

sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t /usr/local/bin

opción de instalación con opción de cinta -s

Listar archivos en /usr/local/bin le permite comparar el tamaño de ana archivo con su versión de respaldo. los ana El archivo se ha reducido a casi el 60% de su tamaño anterior.

ls -l /usr/local/bin

ls en el directorio de trabajo

En resumen

El el install El comando es para un uso muy específico. Para mucha gente, no se usará día tras día, o quizás mes a mes. A pesar de esto, el install Command es una buena herramienta para conocer y tener en tu arsenal de consejos. Para las ocasiones en que lo necesite, recompensa su curva de aprendizaje con eficiencia, simplicidad y simplemente menos pulsaciones de teclas.

Experto Geek - Tu Guía en Tendencias Tecnológicas