Esercizio 3 Prova Pratica 20-06-2013

From Sistemi Operativi
Jump to navigation Jump to search
Scrivere un programma python o uno script bash per cercare all'interno della directory corrente tutti i file che abbiano lo stesso
contenuto.

Soluzione di Krusty

import os, sys
from stat import *

dic = {}
dir = os.getcwd()
for f in os.listdir(dir):
		path = os.path.join(dir,f)
		s = os.stat(path)
		l = os.path.getsize(path)
		if S_ISREG(s.st_mode):
			if(l not in dic):
				#aggiungo il percorso del file nel dizionario se non presente
				f_list = [path]
				dic[l] = f_list
			else:
				f_list = dic[l] #prelevo la lista di tutti i file lunghi l
				f1 = open(path,"r")
				text = f1.read()
				f1.close()
				for fl in f_list:
					with open(fl,"r") as f2:
						if(text == f2.read()):
							print(f,'e',os.path.basename(fl),"hanno lo stesso contenuto")
				f_list.append(path)