0 Votes

Code source wiki de ScriptsPerso/Classement

Version 4.18 par john le 2025/05/25 11:16

Afficher les derniers auteurs
1 = Script d'organisation automatique des fichiers =
2
3 {{toc/}}
4
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.
6
7 == Script Bash ==
8
9 {{code language="bash"}}
10 #!/bin/bash
11 DIR="${1:-$(pwd)}"
12 echo "Organisation des fichiers dans : $DIR"
13 find "$DIR" -maxdepth 1 -type f | while read -r file; do
14 ext=$(basename "$file" | awk -F. '{if (NF>1) print $NF; else print "autres"}' | tr '[:upper:]' '[:lower:]')
15 date_path=$(date -r "$file" "+%Y/%m")
16 target="$DIR/$ext/$date_path"
17 mkdir -p "$target"
18 mv "$file" "$target/"
19 echo "→ $file → $target/"
20 done
21 {{/code}}
22
23 == Exemple de résultat ==
24
25 {{code language="text"}}
26 Téléchargements/
27 ├── pdf/2024/12/rapport-final.pdf
28 ├── png/2025/05/capture.png
29 ├── autres/2025/01/fichier_sans_extension
30 {{/code}}
31
32 == Exécution ==
33
34 Tu peux exécuter le script comme ceci :
35 {{code language="bash"}}./organise.sh
36 # ou
37 ./organise.sh /chemin/vers/dossier{{/code}}
38
39 == Personnalisation ==
40
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:Main.TutosLinux.ScriptsPerso.ScriptsPerso/NautilusZenity.WebHome]]
44
45 == Liens internes ==
46
47 * [[Retour aux scripts personnels>>doc:Wiki Batcave John.Main.TutosLinux.ScriptsPerso.WebHome]]