Ce script va ranger vôtre home très rapidement si vous avez un certains types de fichiers ... Il va créer un certains nombres de répertoires par défaut en fonction de leurs existences pour y mettre les fichiers et si un répertoire reste vide , il vous sera demandé de l'effacer ...
I.) Les répertoires crées et le type d'extension pris en charge
- * Documents : .pdf, .txt, .doc
* Images : .png, .jpg, .jpeg, .gif, .bmp, .svg, .tif, .tiff
* Musiques : .mp3, .wav, .asx, .ogg, .wma
* Archives: .tar, .tar.gz, .tgz, .tar.bz2, .rar, .zip, .Z, .ace
* Videos : .avi, .mpeg, .mka, .mkv, .mpg, .rm, .rmvb, .wmv, .vob
* Paquets : .deb, .rpm
* Java : .java, .class
* Cpp : .c, .cpp, .h, .hpp, .cxx
* HTML : .htm, .html, .css
* PHP : .php, .php3, .php4, .php5
* Scripts : .sh, .rb, .py, .pl
II.) Le Code
Code: Select all
#!/usr/bin/ruby -w
### Distributed under the terms of the GNU General Public License v2
#
### range comes with ABSOLUTELY NO WARRANTY !
#
### Inspirez du script de GarulfoLinux qui m'a fait un clin d'oeil (pour me donner du taff !) ...
#
### Author : Man in the Hill .
require 'getoptlong'
require 'fileutils'
include FileUtils
class Ordre
def test(dir)
test = FileTest::directory?(dir)
if test == true
puts "Le répertoire #{dir} ... EXIST ... [ OK ]\n\n"
else
puts "Le répertoire #{dir} ... N'EXISTE PAS !\n\n"
puts "Création du répertoire #{dir} ...[ OK ]\n\n"
Dir::mkdir("#{dir}", 0777)
end
end
def mouv()
tab = %x(ls).split
tab.each { |file|
base = File::basename(file)
ext = File::extname(file)
case ext
when ".pdf", ".txt", ".doc"
mv("#{base}", "Documents")
when ".png", ".jpg", ".jpeg", ".gif", ".bmp", ".svg", ".tif", ".tiff"
mv("#{base}", "Images")
when ".mp3", ".wav", ".asx", ".ogg", ".wma"
mv("#{base}", "Musiques")
when ".tar", ".gz", ".tgz", ".bz2", ".rar", ".zip", ".Z", ".ace"
mv("#{base}", "Archives")
when ".avi", ".mpeg", ".mka", ".mkv", ".mpg", ".rm", ".rmvb", ".wmv", ".vob"
mv("#{base}", "Videos")
when ".deb", ".rpm"
mv("#{base}", "Paquets")
when ".java", ".class"
mv("#{base}", "Java")
when ".c", ".cpp", ".h", ".hpp", ".cxx"
mv("#{base}", "Cpp")
when ".htm", ".html", ".css"
mv("#{base}", "HTML")
when ".php", ".php3", ".php4", ".php5"
mv("#{base}", "PHP")
when ".sh", ".py", ".rb", ".pl"
mv("#{base}", "Scripts")
end
}
end
def dossiervide(z)
vide = %x(ls "#{z}")
if vide == ""
puts "\n** Le répertoire #{z} est vide ! Voulez-vous l'effacer ?[Y/n]\n\n"
choice = $stdin::gets.chomp
case choice.downcase
when "y", "yes"
rm_rf("#{z}")
puts "\nLe répertoire #{z} a été effacé ... [ OK ]\n\n"
when "n", "no", "non"
path = Dir::pwd
puts "\nLe répertoire #{z} est dans #{path} ! Enjoy !\n\n"
else
puts "\nUne erreur c'est produite ! Afficher l'aide avec --help or -h !\n\n"
end
end
end
end
# RANGE #
# Création de l'objet "r" ...
r = Ordre::new()
# What Time is it ?
t= Time.now.asctime
puts "\n#{t}\n\n"
# Option d'aide ...
opts = GetoptLong::new(['--help', '-h', GetoptLong::NO_ARGUMENT])
# Traitement de l'option "help" ...
opts.each do |opt, arg|
case opt
when "--help", "-h"
puts "\n== Synopsis ==\n"
puts "\nRange vos fichiers ..."
puts "\n== Usage ==\n"
puts "\nVous vous placez dans le répertoire ou se trouve tous vos fichiers à ranger ...\n"
puts "\nLancer le script ...\n"
puts "\nSi vous n'avez pas de fichiers dans une des catégories,\n"
puts "\nle script vous demandera de supprimer le répertoire créé si il est vide !\n"
puts "\nEx: Le script créer tous les répertoires par défaut et si vous n'avez pas de fichiers .java, .class,\n"
puts "le répertoire Java créé sera vide alors il vous demandera de supprimer ce répertoire !\n"
puts "\nSi vous constatez un bug faite moi signe !..\n"
puts "\n== Fin ==\n\n"
exit
end
end
# Appelle de la méthode "test" ...
r::test("Documents")
r::test("Images")
r::test("Musiques")
r::test("Archives")
r::test("Videos")
r::test("Paquets")
r::test("Java")
r::test("Cpp")
r::test("HTML")
r::test("PHP")
r::test("Scripts")
# Appelle de la méthode "mouv" ...
r::mouv()
# tester si un répertoire est vide ...
r::dossiervide("Documents")
r::dossiervide("Images")
r::dossiervide("Musiques")
r::dossiervide("Archives")
r::dossiervide("Videos")
r::dossiervide("Paquets")
r::dossiervide("Java")
r::dossiervide("Cpp")
r::dossiervide("HTML")
r::dossiervide("PHP")
r::dossiervide("Scripts")
exitNote : Si vous nommez le script avec une extension .rb et qu'il est dans le même répertoire de rangement, il va se retrouver dans le répertoire Scripts !... Vous lancez le script ainsi après l'avoir rendu exécutable:
Code: Select all
chmod +x nom_du_srcipt ** pour le rendre exécutable !Code: Select all
ruby nom_du_sriptCode: Select all
./nom_du_scriptJ'ai rajouté le cas ou vous n'aurez pas de fichiers dans une des catégories, le script vous demandera de supprimer le répertoire crée si il est vide ...
Par ex : Si vous n'avez pas de fichier .java , .class et que le répertoire Java qui serra quand même créé (s'il n'existe pas , bien sûr) au lancement du script reste est vide, vous aurez la possibilité de le supprimer !
Effacez si vous êtes sûr qu'il n'y a pas de fichiers cachés dans ce répertoire car le script ne va pas les détecter !
Assurez-vous de ne pas avoir des fichiers avec des espaces dans les noms !
Enjoy !
@ +


