diff options
Diffstat (limited to 'home/xyz/.local/bin/orgext')
-rwxr-xr-x | home/xyz/.local/bin/orgext | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/home/xyz/.local/bin/orgext b/home/xyz/.local/bin/orgext new file mode 100755 index 00000000..f1654d2c --- /dev/null +++ b/home/xyz/.local/bin/orgext @@ -0,0 +1,24 @@ +#!/bin/sh + +# references: +# https://stackoverflow.com/questions/1842254/how-can-i-find-all-of-the-distinct-file-extensions-in-a-folder-hierarchy + +# not sure if find here need -depth, not sure if mv here need -n and -T + +outdir () +{ + find . -type f -execdir mv -nt "$PWD" -- '{}' \+ + find . -mindepth 1 -maxdepth 1 -type d -delete +} + +indir () +{ + find . -maxdepth 1 -type f | awk -F. '!a[$NF]++{print $NF}' | xargs mkdir -- + find . -mindepth 1 -maxdepth 1 -type d -execdir basename -az -- '{}' \+ | xargs -0 -I _ find . -maxdepth 1 -type f -name '*._' -execdir mv -t '_' -- '{}' \+ +} + +case "$1" in + '-o') outdir;; + '-i') indir;; + *) outdir; indir;; +esac |