structures
## find all files in this directory and its sub-directories and execute mv with target directory . for each file found to move them to current directory.
find . -mindepth 2 -type f -print -exec mv {} . \;
## rename files in subdirs to name dirs (one level)
for x in */*; dodir2=${x%/*}; dir1=${dir2%/*}; dir2=${dir2#"$dir1"}mv -- "$x" "${x%/*}/${dir1}-${dir2}--${x##*/}"done
## find spaces in files
find . -type f -name "* *"
## rename spaces in files
find . -type f -name "* *" | while read file; do mv "$file" ${file// /_}; done
## create folders from list
xargs mkdir <list.txt