A collection of Bash scripts
Here you find a selection of some of my Bash scripts that you may find useful. I wrote them many ago and they are still in use.
Execute a command as another user with: sudox
sudox
(sudo
for X) is a Bash script that executes commands under X in
UNIX and LINUX on behalf of another user using sudo. It provides the
necessary privileges using xauth over a pipe. I use it for example to
execute firefox as a different user with low privileges.
Usage:
> sudox -u <other_user> <command>
Example:
> sudox -u mynobody firefox
sudox
has the same function than the discontinued sux
command
that was distributed formely as a package in Debian and Ubuntu.
Read more as html/pdf-rendition or download the script.
Incremental encrypted backups with: afio, secbak and secrest
secbak
and secrest
are scripts that uses afio
a cpio
replacement for
assembling files to an archive. The scripts implements incremental
multi-volume backups and restore. Unlike with tar
, files are compressed
individually and can be optionally encrypted. This makes the archive more
robust in case of read errors.
Read more as html/pdf-rendition or download the script.
Publish only sub-trees tagged as: PUBLIC
publish_only_PUBLIC_subtrees.sh
is a Bash script that reconstructs parts
of a UNIX or LINUX directory tree using symbolic links. I use it in order to
to collect selected assets of my hard disk on a web server. Only files and
directories within folders named PUBLIC
are published. It uses nested
find
commands.
Read more as html/pdf-rendition or download the script.
Relative symbolic links with: lnr -s
lnr -s
is a Bash script which creates symbolic links with the same syntax
as the UNIX command ln -s. Unlike ln -s it searches the shortest relative
path between the source and destination and creates the link with a relative
path. Most of the time symbolic links are very short in distance and used
mainly to reduce redundancy. The advantage of relative symbolic links is
that whole branches can be moved without breaking links. If you do so,
please make sure that branch you want to move does not does not contain
relative links pointing outside the moving branch.