-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy path04_tests_comparaisons.sh
More file actions
executable file
·71 lines (57 loc) · 2.1 KB
/
Copy path04_tests_comparaisons.sh
File metadata and controls
executable file
·71 lines (57 loc) · 2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/bin/bash
################################################################################
# Section : Tests sur les fichiers > Tests avances et comparaisons
# Description : Comparaison de fichiers par contenu (cmp), taille (wc -c)
# et date de modification (-nt, -ot)
# Fichier source : 08-gestion_des_fichiers_et_repertoires.md
################################################################################
# Travailler dans un répertoire temporaire
dir_travail=$(mktemp -d)
cd "$dir_travail" || exit 1
trap 'rm -rf "$dir_travail"' EXIT
echo "=== Tests avancés et comparaisons ==="
# Créer des fichiers pour les comparaisons
echo "Version 1" > version1.txt
sleep 2 # Attendre pour avoir des timestamps différents
echo "Version 2" > version2.txt
cp version1.txt copie_version1.txt
echo "Fichiers pour comparaison :"
ls -la version*.txt copie_*.txt
echo ""
# Fonction de comparaison de fichiers
comparer_fichiers() {
local fichier1="$1"
local fichier2="$2"
echo "Comparaison de '$fichier1' et '$fichier2' :"
# Vérifier l'existence
if [ ! -f "$fichier1" ] || [ ! -f "$fichier2" ]; then
echo " ❌ Un des fichiers n'existe pas"
return 1
fi
# Comparaison par le contenu
if cmp -s "$fichier1" "$fichier2"; then
echo " ✅ Contenus identiques"
else
echo " ❌ Contenus différents"
fi
# Comparaison par la taille
local taille1=$(wc -c < "$fichier1")
local taille2=$(wc -c < "$fichier2")
if [ "$taille1" -eq "$taille2" ]; then
echo " ✅ Tailles identiques ($taille1 octets)"
else
echo " ❌ Tailles différentes ($taille1 vs $taille2 octets)"
fi
# Comparaison par la date de modification
if [ "$fichier1" -nt "$fichier2" ]; then
echo " 📅 '$fichier1' est plus récent"
elif [ "$fichier1" -ot "$fichier2" ]; then
echo " 📅 '$fichier2' est plus récent"
else
echo " 📅 Même date de modification"
fi
echo ""
}
# Effectuer les comparaisons
comparer_fichiers "version1.txt" "version2.txt"
comparer_fichiers "version1.txt" "copie_version1.txt"