install

install is cp on steroids. It can set file permissions, create directories, take backups, and much more, all from a single command line. As its name suggests, it was written for software installation scripts, although it can be used for other purposes, too.

Because an existing copy of the file may already be installed, install can also take backups before installing the new files. This is specified by the -b flag, which creates backup files with a tilde (~) at the end of the filename. The --backup option can specify other policies for backups, which are:

  • simple or never: The default tilde (~) backup only.
  • numbered or t: Numbered backups, as .~1~, .~2~, and so on.
  • existing or blank: simple or numbered, whichever is already in use (default is simple).
  • none or off: Never take backups.

The -m flag specifies mode, either in octal format (0750 for a regular file, with rwx, r-x, and --- access for User, Group, and Other, respectively), or symbolic format, such as -m 'u=rwx,g=r'. Note that this flag is not applied to parent directories; they will be created with 755 permissions.

The -o and -g flags tell install which owner and group the file should have; these can only be used by the root user, as a non-privileged user would not have the permissions to do that. The -v flag tells install to be verbose about what it is doing, which can be useful for providing feedback as to what is happening.

This script shows a simple application’s Makefile and installer. The installer itself ...

Get Shell Scripting: Expert Recipes for Linux, Bash, and More now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.