clock with timer, folderflat with custom character and as-is

This commit is contained in:
Ville Rantanen
2015-11-12 10:54:12 +02:00
parent 9e9fc69571
commit aa7de42890
2 changed files with 84 additions and 24 deletions

View File

@@ -4,25 +4,61 @@ function help() {
echo "Files in subfolders will be renamed / -> _"
echo "Empty folders are removed"
echo " -f to force action "
echo " -n to move files as is, i.e. not include path names in new name "
echo " -p C Replace path separator / with character C "
}
function helpexit() {
help
exit
}
[[ -z "$1" ]] && {
function preview() {
echo ""
for f in $( find . -mindepth 2 -type f -path '*.*' -printf %P'\n' | head ); do
[[ "$NO_PATH" = "1" ]] && {
echo "$f => " .
} || {
echo "$f =>" "${f//\//$SEP}"
}
done
echo "..."
}
function flat() {
for f in $( find . -mindepth 2 -type f -path '*.*' -printf %P'\n' ); do
[[ "$NO_PATH" = "1" ]] && {
mv -iv "$f" .
} || {
mv -iv "$f" "${f//\//$SEP}"
}
done
find . -depth -type d -empty -delete
}
SEP="_"
FORCE=0
while getopts fhnp: opt
do case "$opt" in
f)
FORCE=1
;;
h)
helpexit
;;
n)
NO_PATH=1
;;
p)
SEP=$OPTARG
;;
esac
done
IFS=$'\n'
[[ "$FORCE" = "0" ]] && {
help
preview
echo "Are you sure? Break with ctrl-c"
read i
}
[[ "$1" = "-h" ]] && helpexit
IFS=$'\n'
for f in $( find . -mindepth 2 -type f -path '*.*' -printf %P'\n' );
do mv -iv "$f" "$( echo $f | sed s,[/],_,g )"
done
find . -depth -type d -empty -delete
flat