0 Votes

Modifications pour le document Classement

Modifié par john le 2026/09/20 20:22

Depuis la version 3.1
modifié par john
sur 2026/09/20 20:22
Commentaire de modification : Il n'y a aucun commentaire pour cette version
À la version 2.3
modifié par john
sur 2026/09/20 19:45
Commentaire de modification : Liens entrant renommés.

Résumé

Détails

Propriétés de la Page
Contenu
... ... @@ -1,40 +1,25 @@
1 += Script d'organisation automatique des fichiers =
2 +
1 1  {{toc/}}
2 2  
3 -Ce script organise automatiquement les fichiers d’un répertoire en les triant par **type** (extension) et par **date de modification** (année/mois). Idéal pour ranger un dossier de téléchargements ou trier des fichiers archivés.
5 +Ce script permet d’organiser automatiquement les fichiers d’un répertoire en les triant par **type** (extension) et par **date de modification** (année/mois). C’est idéal pour ranger un dossier de téléchargements ou trier des fichiers de projets archivés. Le fonctionnement est simple : 1) Le script détecte le type de chaque fichier (extension) ; 2) Il extrait la date de modification (année/mois) ; 3) Il crée les dossiers correspondants (ex : `pdf/2024/12`) et y déplace les fichiers.
4 4  
5 -Fonctionnement : le script détecte l'extension de chaque fichier, extrait sa date de modification, crée le dossier correspondant (par exemple ##pdf/2024/12##) et y déplace le fichier.
6 -
7 7  == Script Bash ==
8 8  
9 9  {{code language="bash"}}
10 10  #!/bin/bash
11 -set -euo pipefail
12 -
13 -DIR="${1:-$PWD}"
14 -SCRIPT="$(cd "$(dirname "$0")" && pwd)/$(basename "$0")"
15 -
11 +DIR="${1:-$(pwd)}"
16 16  echo "Organisation des fichiers dans : $DIR"
17 -
18 -find "$DIR" -maxdepth 1 -type f -print0 | while IFS= read -r -d '' file; do
19 - # Ne pas se déplacer soi-même
20 - [ "$file" = "$SCRIPT" ] && continue
21 -
13 +find "$DIR" -maxdepth 1 -type f | while read -r file; do
22 22   ext=$(basename "$file" | awk -F. '{if (NF>1) print $NF; else print "autres"}' | tr '[:upper:]' '[:lower:]')
23 23   date_path=$(date -r "$file" "+%Y/%m")
24 24   target="$DIR/$ext/$date_path"
25 -
26 26   mkdir -p "$target"
27 - mv -n "$file" "$target/" # -n : ne jamais écraser un fichier existant
28 - echo "→ $(basename "$file") → $ext/$date_path/"
18 + mv "$file" "$target/"
19 + echo "→ $file → $target/"
29 29  done
30 30  {{/code}}
31 31  
32 -|=Élément|=Rôle
33 -|##set -euo pipefail##|Arrêt à la première erreur
34 -|##-print0## et ##read -d ''##|Gère les noms contenant espaces, apostrophes ou retours à la ligne
35 -|##mv -n##|N'écrase jamais un fichier déjà présent dans le dossier cible
36 -|Test sur ##$SCRIPT##|Empêche le script de se ranger lui-même
37 -
38 38  == Exemple de résultat ==
39 39  
40 40  {{code language="text"}}
... ... @@ -46,24 +46,18 @@
46 46  
47 47  == Exécution ==
48 48  
49 -{{code language="bash"}}
50 -./organise.sh
34 +Tu peux exécuter le script comme ceci :
35 +{{code language="bash"}}./organise.sh
51 51  # ou
52 -./organise.sh /chemin/vers/dossier
53 -{{/code}}
37 +./organise.sh /chemin/vers/dossier{{/code}}
54 54  
55 -{{warning}}
56 -Essayer d'abord à blanc, en remplaçant ##mv -n## par ##echo mv## : le script déplace des fichiers sans confirmation, et une erreur de chemin range tout un dossier au mauvais endroit.
57 -{{/warning}}
58 -
59 59  == Personnalisation ==
60 60  
61 -* Ignorer les petits fichiers : ##find "$DIR" -maxdepth 1 -type f -size +10k##
62 -* Ignorer les fichiers récents : ajouter ##-mtime +7##
63 -* Trier par année seulement : ##date -r "$file" "+%Y"##
64 -* Intégrer à Nautilus : voir [[Nautilus et Zenity>>doc:Wiki Batcave John.TutosLinux.ScriptsPerso.NautilusZenity.WebHome]]
41 +- Pour ignorer les petits fichiers : `find "$DIR" -type f -size +10k`
42 +- Pour tester à blanc : remplace `mv` par `echo mv`
43 +- Pour intégrer à Nautilus : voir [[Zenity>>doc:Wiki Batcave John.TutosLinux.ScriptsPerso.NautilusZenity.WebHome]]
65 65  
66 66  == Liens internes ==
67 67  
68 -* [[Retour aux scripts perso>>doc:Wiki Batcave John.TutosLinux.ScriptsPerso.WebHome]]
47 +* [[Retour aux scripts personnels>>doc:Wiki Batcave John.TutosLinux.ScriptsPerso.WebHome]]
69 69  * [[Retour à l’accueil>>doc:Wiki Batcave John.WebHome]]