Write a shell script that deletes all C sources in one directory if they are in the structure of another directory. The first argument on the command line is the directory where the C sources are located, and the second is the directory where the search starts.
#!/bin/bash
if [ $# -ne 2 ] then echo "for execution complete the line of command: $0 dir1 dir2" exit 1
fi
if [ ! d ~/$1 ] then echo "write a directory in order to do the search" exit 1
fi
if [ ! d ~/$2 ] then echo "write a directory in order to do the search" exit 1
fi
find $2 -type f -name*.c > listafis.txt
for f in listafis.txt do if grep f $1 then rm f fi
doneThis is what I have tried and it doesn't work
1 Answer
Compare files in two directories and remove one if it exists in both places.
$ comm -z -12 \ <(find folder1/ -type f -name '*.c' -printf %P\\0 | sort -z) \ <(find folder2/ -type f -name '*.c' -printf %P\\0 | sort -z) | xargs -0 -I {} rm -i folder2/{} 3