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

Contenidos

Arte conceptual de Bash en un escritorio Ubuntu Linux

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

Espere, ¿no es para instalar software?

los install comando puede tener el nombre más engañoso de cualquiera de 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 mando. En otras distribuciones de Linux, utilice la herramienta de administración de paquetes de su distribución de Linux, a modo de ejemplo, dnf en Fedora o zypper en openSUSE.

Entonces, ¿qué hace la instalación?

En una palabra install combina ítems de la cp (Copiar), chown (Cambio de propietario), chmod (modo de cambio), mkdir (hacer directorio), y strip (símbolos de tira) comandos. Te posibilita utilizar funciones de todas ellas en una sola acción.

los install comando puede:

  • Copie archivos como el cp mando.
  • Elija si desea sobrescribir los archivos existentes.
  • Cree el directorio de destino si no existe, como mkdir.
  • Establezca los indicadores de permisos de usuario de los archivos, del mismo modo que los chmod mando.
  • Establezca el propietario de los archivos, del mismo modo que el chown mando.
  • Elimine el equipaje no esencial de los archivos ejecutables, del mismo modo que el strip mando.

Pese a toda esa funcionalidad, el install el comando no tiene demasiado muchas opciones que lidiar con.

instalar página de manual

Cuándo lo utilizarías

los install El comando probablemente no se usará todos los días. Es útil, pero solo para determinadas situaciones. Un escenario donde install entra en juego es el desarrollo de software. Digamos que está programando una nueva utilidad. Deberá realizar pruebas fuera del entorno de desarrollo. Para hacer eso, necesita copiar los nuevos archivos de programa a un directorio de prueba. Es factible que sea necesario crear el directorio de prueba y determinar los permisos y la propiedad correctos para los archivos.

Debido a que el desarrollo es una actividad iterativa, puede terminar haciendo esta secuencia de acciones muchas, usualmente. los install El comando hace todo el trabajo pesado por ti. En resumen, cuando su nueva utilidad esté lista para implementarse, puede utilizar install para copiarlo con los permisos correctos a su ubicación final de trabajo.

Un ejemplo

Un programador está trabajando en una nueva utilidad, llamada ana. Se trata de 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á sustituir los nombres de archivo y las rutas de directorio en nuestro ejemplo por los archivos y las rutas que está usando en su computadora cuando utiliza install.

Hasta que esté listo para su lanzamiento, se probará en un directorio llamado ~/test/ana. Los miembros de la geek grupo tendrá permisos de lectura y ejecución. Otros usuarios además tendrán permisos de lectura y ejecución. los install El comando utiliza la misma representación numérica para los permisos que chmod lo hace. Nuestro programador decidió que los permisos deben establecerse en:

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

Cómo usar el install Mando

El directorio de trabajo de nuestro programador ficticio es ~/work. Ha escrito el programa, lo ha compilado y ha producido un binario llamado ana. Él ya creó el archivo de base de datos que ana funciona con, Words.db. Entonces ambos archivos están listos para probar. Echemos un vistazo a ellos:

ls -l ana Words.db

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

prueba de la utilidad ana en el directorio de trabajo

Nuestro programador ha invocado ana con la frase “galleta” y todo parece estar bien. Ahora quiere copiar estos dos archivos al ~/test/ana directorio 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 alternativas utilizadas en la línea de comando fueron:

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

Podemos ver eso install crea el ~/test directorio, y después crea el ~/test/ana directorio. Los archivos se enumeran uno por uno a medida que se copian en el directorio de destino.

Listado de archivos en ~/test/ana confirma que se han copiado correctamente.

ls -l

ls en el directorio / test / ana

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

prueba de la utilidad ana en el directorio / test / ana

La utilidad funciona como se esperaba, lo cual es genial. A pesar de esto, los permisos no son correctos. El requisito es determinar miembros del grupo geek tener permisos de lectura y ejecución, y que otros usuarios solo hayan ejecutado.

Podemos abordar ambos problemas de manera bastante simple 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 alternativas lo requieren. Se nos pedirá nuestra contraseña cuando emitamos el comando.

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

instalar comando con opciones de copia de seguridad y configuración de permisos

  • 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) establece el sufijo para los archivos de respaldo. Si no proporciona un sufijo a ~ (tilde) se utiliza. Estamos preguntando install utilizar un sufijo de .bak.
  • Establecemos que el propietario del archivo sea dave usando el -o (propietario) opción.
  • los -g La opción (grupo) necesita el nombre de un grupo. Este se convierte en el grupo propietario de los archivos. El grupo que vamos a usar se llama geek.
  • los -m La opción (modo) establece los modos de archivo para los archivos, usando el estándar chmod sintaxis numérica.

Ya no necesitamos utilizar el -D (crear directorios), debido a que sabemos que el directorio de prueba ya existe. Además hemos omitido el -v opción (detallada). Listando los archivos en nuestro ~/test/ana directorio nos muestra los detalles del archivo:

ls -l

ls en el directorio / test / ana

Esto confirma que se han cumplido todos nuestros requerimientos.

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

Todo eso se logró a través de el uso de un comando. Limpio.

Nuestro programador realiza algunos cambios finales en la utilidad y vuelve a compilar. Los archivos que han cambiado deben copiarse a la ~/test/ana directorio del ~/work directorio. 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 el comando con la opción -C comparar

Enumerar los 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.bakexpediente. La marca de tiempo en ana además ha cambiado. Estos cambios se deben a que aquí se copió la versión nueva del archivo.

ls -l

ls en / test / ana con test fo ana utility

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

El programador ha vuelto a probar que el ana la utilidad sigue funcionando.

Es hora de utilizar install para copiar los archivos al /usr/local/bin directorio. Esto hará que la nueva utilidad esté disponible para todos los usuarios de esta computadora Linux. Lo sabemos /usr/local/bin existe, por lo que no necesitamos crear ese directorio. Podemos utilizar una versión modificada de nuestro último comando.

Hemos cambiado el directorio de destino para que sea /usr/local/bin. Hemos eliminado el -C (comparar) debido a que aún no hay copias de estos archivos en el directorio de destino, por lo que no hay nada con lo que comparar. De la misma forma, no hay nada de lo que hacer una copia de seguridad, por lo que podemos quitar el -b (copia de seguridad) y la -S (sufijo) opción.

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

instalar copiando archivos a / usr / local / bin

Podemos enumerar que los archivos han llegado a /usr/local/bin:

ls -l

ls de / usr / local / bin

Y como prueba final, cambiemos el directorio 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 comando con ./ lo que significa que se está ejecutando desde /usr/local/bin. Misión cumplida.

Mencionamos que la instalación puede quitar las tablas de símbolos redundantes y otro equipaje dentro 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 utilizar el siguiente comando. Hemos agregado la opción -s (encoger) con una «s» minúscula. Hemos vuelto a agregar la opción -b (copia de seguridad) 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 -s strip

Listado de archivos en /usr/local/bin nos posibilita comparar el tamaño del 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

La la install El comando se adapta a un uso muy específico. Para muchas personas, no se usará día tras día, o posiblemente de mes a mes. Pese a eso, el install El comando es una buena herramienta para familiarizarse y tener en su arsenal de trucos. Para aquellas ocasiones en las que lo necesite, recompensa su curva de aprendizaje con mejoras en la eficiencia, la simplicidad y simplemente menos pulsaciones de teclas.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.