#!/bin/sh split_directories() { dir="$1" while test "$dir" != "/" -a "$dir" != "."; do printf "%s\n" "$dir" dir=$(dirname "$dir") done } if test -z "$1"; then split_directories "$(pwd)" else for dir in "$@"; do case "$dir" in /*) # Absolute path split_directories "$dir" ;; *) # Relative path split_directories "$(pwd)/$dir" ;; esac done fi