<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://so.v2.cs.unibo.it/wiki/index.php?action=history&amp;feed=atom&amp;title=Aggiorna_cartelle_%28Prova_pratica_23-01-2014%29</id>
	<title>Aggiorna cartelle (Prova pratica 23-01-2014) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://so.v2.cs.unibo.it/wiki/index.php?action=history&amp;feed=atom&amp;title=Aggiorna_cartelle_%28Prova_pratica_23-01-2014%29"/>
	<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Aggiorna_cartelle_(Prova_pratica_23-01-2014)&amp;action=history"/>
	<updated>2026-07-06T13:20:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.5</generator>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Aggiorna_cartelle_(Prova_pratica_23-01-2014)&amp;diff=1035&amp;oldid=prev</id>
		<title>Calvin42: Created page with &quot;Il comando che dovrete implementare come script shell o programma python e' updatedir. Updatedir prende due directory come parametri.  updatedir dira dirb  Deve copiare in dir...&quot;</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Aggiorna_cartelle_(Prova_pratica_23-01-2014)&amp;diff=1035&amp;oldid=prev"/>
		<updated>2015-04-16T09:51:30Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Il comando che dovrete implementare come script shell o programma python e&amp;#039; updatedir. Updatedir prende due directory come parametri.  updatedir dira dirb  Deve copiare in dir...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Il comando che dovrete implementare come script shell o programma python e' updatedir. Updatedir prende due directory come parametri.&lt;br /&gt;
&lt;br /&gt;
updatedir dira dirb&lt;br /&gt;
&lt;br /&gt;
Deve copiare in dirb tutti i file regolari che sono in dira e non in dirb. Se un file regolare e' presente con lo stesso nome sia in dira sia in dirb, il file deve essere copiato dalla dira alla dirb solo se i contenuti differiscono.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Soluzione di Claudio Kerov e Stefano Zaniboni===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/local/bin/python3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
import filecmp&lt;br /&gt;
import shutil&lt;br /&gt;
&lt;br /&gt;
if not os.path.isdir(sys.argv[1]):&lt;br /&gt;
	sys.exit(sys.argv[1]+&amp;quot; non è una directory!&amp;quot;)&lt;br /&gt;
if not os.path.isdir(sys.argv[2]):&lt;br /&gt;
	sys.exit(sys.argv[2]+&amp;quot; non è una directory!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
dir1= sys.argv[1]&lt;br /&gt;
dir2= sys.argv[2]&lt;br /&gt;
lista=[]&lt;br /&gt;
&lt;br /&gt;
for path, dirnames, filenames in os.walk(dir2):&lt;br /&gt;
	for filename in filenames:&lt;br /&gt;
		if(os.path.isfile(dir2+filename)):&lt;br /&gt;
			lista.append(filename)&lt;br /&gt;
&lt;br /&gt;
for path, dirnames, filenames in os.walk(dir1):&lt;br /&gt;
	for filename in filenames:&lt;br /&gt;
		if(os.path.isfile(dir1+filename)):&lt;br /&gt;
			if filename in lista:&lt;br /&gt;
				if not filecmp.cmp(dir1+filename, dir2+filename):&lt;br /&gt;
					shutil.copyfile(dir1+filename, dir2+filename)&lt;br /&gt;
					print(&amp;quot;Ho copiato&amp;quot;,filename+&amp;quot;! (diff)&amp;quot;)&lt;br /&gt;
			else:&lt;br /&gt;
				shutil.copy(dir1+filename, dir2)&lt;br /&gt;
				print(&amp;quot;Ho copiato&amp;quot;, filename+&amp;quot;!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Calvin42</name></author>
	</entry>
</feed>