#!/bin/sh # # mvparent.sh, Copyright © 2007, 2010, 2020 Matteo Cypriani # # This program is free software. It comes without any warranty, to # the extent permitted by applicable law. You can redistribute it # and/or modify it under the terms of the Do What The Fuck You Want # To Public License, Version 2, as published by Sam Hocevar. See # http://sam.zoy.org/wtfpl/COPYING for more details. # # Moves the contents of the given directory(ies) into its parent directory, # then removes the directory(ies). set -e #set -x if [ $# -lt 1 ] ; then echo "Usage: $(basename "$0") DIRECTORY [DIRECTORY [...]]" >&2 exit 1 fi while [ -n "$1" ] ; do dir="$1" shift if [ ! -d "$dir" ] ; then echo "Warning! \"$dir\" is not a directory: ignoring." >&2 continue fi target="$(basename "$dir")" dir="$(dirname "$dir")" if [ "$target" = "." ] || [ "$target" = ".." ] ; then echo "Target cannot end by « . » or « .. »!" >&2 exit 2 fi echo "Moving the contents of « $dir/$target » into « $dir »..." >&2 cd "$dir" if [ "$(echo "$target"/*)" != "$target/*" ] ; then mv -n "$target"/* . fi if [ "$(echo "$target"/.[!.]*)" != "$target/.[!.]*" ] ; then mv -n "$target"/.[!.]* . fi rmdir "$target" cd "$OLDPWD" done # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4