folder flat without hidden files

This commit is contained in:
ville rantanen
2018-10-30 13:47:36 +02:00
parent 7b7807a979
commit 5e1dd8fa52

View File

@@ -5,6 +5,7 @@ function help() {
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 " -H include hidden files/folders "
echo " -p C Replace path separator / with character C "
}
@@ -13,33 +14,45 @@ function helpexit() {
exit
}
function finder() {
if [[ "$FILTER" -eq 0 ]]; then
find . -mindepth 2 -type f -path '*.*' -printf %P'\n'
return $?
fi
if [[ "$FILTER" -eq 1 ]]; then
find . -mindepth 2 -not -path '*/\.*' -type f -printf %P'\n'
return $?
fi
}
function preview() {
echo ""
for f in $( find . -mindepth 2 -type f -path '*.*' -printf %P'\n' | head ); do
for f in $( finder | head ); do
[[ "$NO_PATH" = "1" ]] && {
echo "$f => " .
} || {
echo "$f =>" "${f//\//$SEP}"
}
done
}
done
echo "..."
}
function flat() {
[[ "$FORCE" = "0" ]] && INTERACT="-i"
for f in $( find . -mindepth 2 -type f -path '*.*' -printf %P'\n' ); do
for f in $( finder ); do
[[ "$NO_PATH" = "1" ]] && {
mv -v $INTERACT "$f" .
} || {
mv -v $INTERACT "$f" "${f//\//$SEP}"
}
}
done
find . -depth -type d -empty -delete
}
SEP="_"
FORCE=0
while getopts fhnp: opt
FILTER=1
while getopts fhHnp: opt
do case "$opt" in
f)
FORCE=1
@@ -47,6 +60,9 @@ do case "$opt" in
h)
helpexit
;;
H)
FILTER=0
;;
n)
NO_PATH=1
;;
@@ -60,6 +76,6 @@ IFS=$'\n'
help
preview
echo "Are you sure? Break with ctrl-c"
read i
read i
}
flat