Linker fisico (Prova pratica 20-02-2014)

From Sistemi Operativi
Revision as of 10:21, 17 April 2015 by Calvin42 (talk | contribs) (Created page with "Il comando che dovrete implementare come script shell o programma python e' linkdir. linkdir prende due directory come parametri. linkdir dira dirb e deve creare in dirb un ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Il comando che dovrete implementare come script shell o programma python e' linkdir. linkdir prende due directory come parametri.

linkdir dira dirb

e deve creare in dirb un link fisico (non simbolico) a 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, nella directory dirb deve rim

#!/usr/local/bin/bash

if [[ -d $1 ]]; then
	if [[ -d $2 ]]; then
		dir1=$1
		dir2=$2
	fi
fi 

ris1=`find $dir1 -type f | sort | cut -d "/" -f 2-`
ris2=`find $dir2 -type f | sort | cut -d "/" -f 2-`

indir1=`comm -2 -3 <(echo "$ris1") <(echo "$ris2")`
common=`comm -1 -2 <(echo "$ris1") <(echo "$ris2")`

for nome in $indir1; do
	`ln ${dir1}/${nome} $dir2`
done

for file in $common; do
	if [[ "${dir1}${file}" -ot "${dir2}${file}" ]]; then
		`ln ${dir1}/${file} $dir2`
	fi
done