diff --git a/bin/linky b/bin/linky
new file mode 100755
index 0000000..e6a07eb
--- /dev/null
+++ b/bin/linky
@@ -0,0 +1,48 @@
+#!/usr/bin/env nuxsh
+
+nux.use nux/fs
+
+## Symlink management tool
+##
+
+## relativize::
+## Converts absolute symlinks to relative ones
+##
+@command relativize {
+ for p in "$@"; do
+ if nux.check.file.symlink "$p"; then
+ target=$(nux.fs.symlink.target "$p");
+
+ if nux.fs.check.absolute "$target"; then
+ link_dir=$(nux.fs.dirname "$p")
+ link_name=$(nux.fs.name "$p")
+ nux.fs.info "$p" Relativizing symlink
+ nux.fs.symlink "$target" "$link_dir" "$link_name"
+ fi
+ fi
+ done
+}
+
+## remove-source::
+## Removes the source of a symlink and any symbolic links that were encountered
+## during dereferencing.
+##
+@command remove-source {
+ for p in "$@"; do
+ if nux.check.file.symlink "$p"; then
+ target="$(realpath "$p")"
+ next="$p"
+ while [ -L "$next" ]; do
+ current="$next"
+ next=$(nux.fs.symlink.target "$current")
+ nux.fs.info "$current" Deleting symlink
+ rm "$current"
+ done
+ if [ -e "$target" ]; then
+ nux.fs.info "$target" Deleting source
+ rm "$target"
+ fi
+
+ fi
+ done
+}
diff --git a/bin/uuidify b/bin/uuidify
new file mode 100755
index 0000000..72e17c1
--- /dev/null
+++ b/bin/uuidify
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+
+for file in "$@"; do
+ name="${file##*/}";
+ if [[ ! "$name" =~ \.[0-9a-fA-F]{32}\. ]]; then
+ prefix="${file%.*}";
+ suffix="${file##*.}";
+ uuid=$(cat /proc/sys/kernel/random/uuid | tr -d "-");
+ echo "$file" uuidifying
+ mv -v "$file" "${prefix}.${uuid}.${suffix}";
+ fi
+done