This is my first bash script so I ask to you to say what you think.
The script must check every directory and if it finds a pdf file in this directory: move all the pdf files to parent directory, change the name of the files and remove directory.
So if I had this folder structure:
folder1
file.pdf
file.txt
folder2
some.pdf
another.pdf
folder3
some.txt
the script must change it to:
folder1.pdf
folder2.pdf
folder2_2.pdf
folder3
some.txt
Here is a script code:
#!/bin/bash
working_directory="$HOME/MEGAsync/downloads/books"
cd $working_directory
# for each directory in working directory
for D in `find . -type d`
do
# skip '.'
if [[ $D != "." ]]; then
# get folder name
folder_name=${D##*/}
# and cd to folder
cd $D
# number of pdf files in the current directory
declare -i pdf_count=0
# for each file in the current directory
for f in *; do
# get file without path
file=$(basename "$f")
extension="${file##*.}"
filename="${file%.*}"
if [[ $extension == 'pdf' ]]; then
pdf_count=pdf_count+1
if [[ pdf_count < 2 ]]; then
new_filename="${working_directory}/${folder_name}.pdf";
else
new_filename="${working_directory}/${folder_name}_${pdf_count}.pdf";
fi
echo cp $working_directory/$folder_name/$f $new_filename
cp $working_directory/$folder_name/$f $new_filename
fi
done
# return to parent folder
cd ..
# delete directory if pdf-file was found
if [[ $pdf_count != "0" ]]; then
echo rm -R $working_directory/$folder_name
rm -R $working_directory/$folder_name
fi
fi
done