walves
walves

Reputation: 2068

Deleting files with same using shell script

Im totally newbie in shell script. Im need compare file name in two directories and delete files with same name.

EG:

Directory1/
one
two
three
four

Directory2/
two
four
five

After run script the directories will be:

Directory1/
one
three

Diretory2/
five

Thanks

Upvotes: 2

Views: 1150

Answers (2)

user unknown
user unknown

Reputation: 36229

test -f tests if a file exists:

cd dir1
for file in *
do
    test -f ../dir2/$file && rm $file ../dir2/$file
done
cd ..

Upvotes: 3

sehe
sehe

Reputation: 392893

Quick and dirty:

while read fname
do 
    rm -vf Directory{1,2}/"$fname"
done < <(sort 
              <(cd Directory1/ && ls) 
              <(cd Directory2/ && ls) | 
         uniq -d)

This assumes a number of things about the filenames, but it should get you there with the input shown, and similar cases.

Tested too, now:

mkdir /tmp/stacko && cd /tmp/stacko
mkdir Directory{1,2}
touch Directory1/{one,two,three,four} Directory2/{two,four,five}

Runnning the command shows:

removed `Directory1/four'
removed `Directory2/four'
removed `Directory1/two'
removed `Directory2/two'

And the resulting tree is:

Directory1/one
Directory1/three

Directory2/five

Upvotes: 2

Related Questions