ODPOVĚĎ
Dobrý den,
podmínka IF na to, zda je obsah dvou adresářů stejný (if dir1==dir2) může být provedena několika způsoby (neříkám, že jsou dokonalé, ale fungují):
1.) Využití funkce diff a počtu vrácených řádků
if [ `diff -rq dir1/ dir2/ | wc -l` != 0 ]; then
echo 'KO - dir1 != dir2'
else
echo 'OK - dir1 = dir2'
fi
2.) Použít dry run na rsync
- vrací rozdílné soubory
- dir musí končit lomítkem
rsync -rvnc dir1/ dir2/
sending incremental file list
code-150x150.jpg
sent 2,734 bytes received 20 bytes 5,508.00 bytes/sec
total size is 4,684,691 speedup is 1,701.05 (DRY RUN)
což by šlo aplikovat do podmínky IF takto (opět použít vrácené řádky):
if [ `rsync -rvnc dir1/ dir2/ | wc -l` == 4 ]; then
echo 'OK - dir1 = dir2'
else
echo 'KO - dir1 != dir2'
fi
Komentáře (0)
Přidat komentář