diff options
Diffstat (limited to 'sh/dirnameall')
-rwxr-xr-x | sh/dirnameall | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/sh/dirnameall b/sh/dirnameall new file mode 100755 index 0000000..befd347 --- /dev/null +++ b/sh/dirnameall @@ -0,0 +1,19 @@ +#!/bin/sh + +while read -r line; do + if [ "$paths" ]; then + paths="$paths +$line" + else + paths="$line" + fi +done + +dirs="$paths" +while [ "$dirs" != '.' ]; do + [ "$dirs" ] && paths="$paths +$dirs" + dirs="$(echo "$dirs" | tr '\n' '\0' | xargs -0 dirname | awk '!a[$0]++')" +done + +echo "$paths" | awk '!a[$0]++' | grep -v '^\.$' |