Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#576 Le 12/07/2009, à 23:00

draco31.fr

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

jobastr a écrit :

Cette commande m'a été donnée par quelqu'un qui avait constaté les liens brisés dans mon pack d'icônes, et il m'avait dit que ça corrigerait le problème (ce qui est vrai) je voulais juste savoir s'il était possible d'en simplifié l'utilisation via un script, genre clic droit sur une image et selection de la fonction dans le menu contextuel, une petite boite de dialogue s'ouvre avec le nom de l'image sélectionnée et on indique le nom du lien vers cette image.

Je ne sais pas si c'est réalisable, je n'ai aucune compétence dans ce domaine:(

Je ne comprends pas bien ce que tu veux faire ...
Le lien à créer doit être dans le même dossier que là où se situe le fichier d'origine ?
Ensuite, tu veux pouvoir donner un "alias" à ce fichier, mais sans le renommer ? C'est ça ?

Hors ligne

#577 Le 12/07/2009, à 23:12

jobastr

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Le lien à créer doit être dans le même dossier que là où se situe le fichier d'origine ?

Oui

Et je voudrais créer un lien dans ce même dossier, mais avec un nom différent.
Créer un lien plutôt que dupliquer l'image, permet d'alléger l'ensemble du thème, celui ci contient plus de 8000  icônes, si tout était en images il ferait plus de 40 Mo, en créant des liens, je l'ai descendu à 25 Mo.

Je voulais juste savoir s'il était possible d'accélérer la procédure, la commande en console pour créer ces liens est:

ln -s nom_fichier_image nom_fichier_lien

Je ne sais pas si j'ai été très clair.

Hors ligne

#578 Le 13/07/2009, à 08:40

draco31.fr

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

jobastr a écrit :

Je ne sais pas si j'ai été très clair.

Oui, c'est beaucoup plus clair maintenant !
A priori tu utilises Nautilus, donc il faudrait réaliser un petit script appelé par nautilus-action ou nautilus-script.

Dans le script il y aurait une ligne du genre :

ln -s "$1" "$(zenity --title "Création d'un lien symbolique" --entry --text "Entrer le nom du lien qui pointeras vers '$1', puis validez :")"

Le problème est qu'il faudrait remplacer "$1" par la sélection de Nautilus, et je ne sais pas quelle est la variable qui fait ça.

Je suis sous Thunar, et j'utilise très peu Nautilus, mais ta demande est l'occasion de se lancer big_smile
Je vais potasser un petit peu plus et j'essai de te pondre un truc sympa.


EDIT : ça y est j'ai fait le script :

#!/bin/bash
IFS=$'\n'
declare -a liste
echo "Sélection : $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
    echo "En cours : $file"
    # Retirer le '\n' en fin de fichier
    file="$(echo -n $file)"
    if [ -d "$file" ]
    then
        type="dossier"
        file="${file%/}"
    else
        type="fichier"
    fi
    dir="${file%/*}"
    cible="${file##*/}"
    cd "$dir"
    # Par défaut, on garde le nom du dernier lien créé
    lien="$(zenity --entry --title "Création d'un lien symbolique" --entry-text="$lien" --text "Entrer le nom du lien qui pointeras vers le $type '$cible', puis validez :")"
    if [ $? -eq 0 ] && [ -n "$lien" ]
    then
        ln -s -T "$cible" "$lien"
        liste+=( "$lien --> $cible" )
    fi
done
zenity --info --title "Création d'un lien symbolique" --text "Les liens suivants ont été créés :\n${liste[*]:-"aucun lien créé"}"
exit 0

A copier/coller dans un fichier placé dans ~/.gnome2/nautilus-scripts/
Il faut également rendre le script exécutable ensuite.

Par exemple :

gedit "~/.gnome2/nautilus-scripts/Créer un lien"
chmod +x "~/.gnome2/nautilus-scripts/Créer un lien"

Tu peux sélectionner plusieurs fichiers ou dossiers à la fois, le script te demandera le nom du lien pour chacun.
Attention : si le lien existe déjà, il ne sera pas remplacé, mais il apparaitra en double dans le récapitulatif.
(On pourrait tester le code retour de ln avant de l'ajouter à la liste).

Dernière modification par draco31.fr (Le 13/07/2009, à 09:37)

Hors ligne

#579 Le 13/07/2009, à 09:31

jobastr

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Merci, c'est pas le truc qui est sympa, c'est toi. smile

Hors ligne

#580 Le 13/07/2009, à 09:42

draco31.fr

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

un petit up comme j'ai édité mon message précédent pour ajouter le script pendant que tu répondais.
ça serait bête de passer à côté de la solution big_smile

Hors ligne

#581 Le 13/07/2009, à 16:23

jobastr

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Un GRAND MERCI À draco31.fr ce script va me faire gagner beaucoup de temps, je vais en parler aux personnes que je connais, qui créer des thèmes, je suis sûr que ça les intéressera.
Il fonctionne parfaitement.
Encore merci.

Hors ligne

#582 Le 23/07/2009, à 10:33

Ankou9

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour a tous, dans l'esprit du sujet voilà deux scripts:

Le premier reprend l'installation de Tor du tutoriel de bishop: http://forum.ubuntu-fr.org/viewtopic.ph … 7#p2494727 mais en l'automatisant, je pense que cela peu intéresser du monde.

#!/bin/bash
#Installation de Tor.
#Auteur: Ankoù9
#ATTENTION: script a effectué en root. Exemple: sudo ./NomDuScript.sh
clear
echo -e "Installation de Tor:"
sudo echo "## Dépôt TOR" >> /etc/apt/sources.list 2>> ~/Bureau/erreurs
sudo echo "deb http://mirror.noreply.org/pub/tor jaunty main" >> /etc/apt/sources.list 2>> /dev/null
sudo echo "deb-src http://mirror.noreply.org/pub/tor jaunty main" >> /etc/apt/sources.list 2>> /dev/null
sudo gpg --keyserver subkeys.pgp.net --recv 94C09C7F && gpg --fingerprint 94C09C7F && gpg --export 94C09C7F | sudo apt-key add -
sudo apt-get update -y >> /dev/null 2>&1
sudo apt-get install tor -y >> /dev/null 2>> ~/Bureau/erreurs
sudo echo "# Generally, this file goes in /etc/privoxy/config" > /etc/privoxy/config 2>> /dev/null
sudo echo "#" >> /etc/privoxy/config 2>> /dev/null
sudo echo "# Tor listens as a SOCKS4a proxy here:" >> /etc/privoxy/config 2>> /dev/null
sudo echo "forward-socks4a / 127.0.0.1:9050 ." >> /etc/privoxy/config 2>> /dev/null
sudo echo "confdir /etc/privoxy" >> /etc/privoxy/config 2>> /dev/null
sudo echo "logdir /var/log/privoxy" >> /etc/privoxy/config 2>> /dev/null
sudo echo "actionsfile standard # Internal purpose, recommended" >> /etc/privoxy/config 2>> /dev/null
sudo echo "actionsfile default # Main actions file" >> /etc/privoxy/config 2>> /dev/null
sudo echo "actionsfile user # User customizations" >> /etc/privoxy/config 2>> /dev/null
sudo echo "filterfile default.filter" >> /etc/privoxy/config 2>> /dev/null
sudo echo " " >> /etc/privoxy/config 2>> /dev/null
sudo echo "# Don't log interesting things, only startup messages, warnings and errors" >> /etc/privoxy/config 2>> /dev/null
sudo echo "#logfile logfile" >> /etc/privoxy/config 2>> /dev/null
sudo echo "#jarfile jarfile" >> /etc/privoxy/config 2>> /dev/null
sudo echo "#debug 0 # show each GET/POST/CONNECT request" >> /etc/privoxy/config 2>> /dev/null
sudo echo "debug 4096 # Startup banner and warnings" >> /etc/privoxy/config 2>> /dev/null
sudo echo "debug 8192 # Errors - *we highly recommended enabling this*" >> /etc/privoxy/config 2>> /dev/null
sudo echo "user-manual /usr/share/doc/privoxy/user-manual" >> /etc/privoxy/config 2>> /dev/null
sudo echo "listen-address 127.0.0.1:8118" >> /etc/privoxy/config 2>> /dev/null
sudo echo "toggle 1" >> /etc/privoxy/config 2>> /dev/null
sudo echo "enable-remote-toggle 0" >> /etc/privoxy/config 2>> /dev/null
sudo echo "enable-edit-actions 0" >> /etc/privoxy/config 2>> /dev/null
sudo echo "enable-remote-http-toggle " >> /etc/privoxy/config 2>> /dev/null
sudo echo "buffer-limit 4096" >> /etc/privoxy/config 2>> /dev/null
sudo echo "## Dépôt VIDALIA" >> /etc/apt/sources.list 2>> ~/Bureau/erreurs
sudo echo "deb http://ppa.launchpad.net/adnarim/ubuntu jaunty main" >> /etc/apt/sources.list 2>> /dev/null
sudo echo "deb-src http://ppa.launchpad.net/adnarim/ubuntu jaunty main" >> /etc/apt/sources.list 2>> /dev/null
sudo gpg --keyserver keyserver.ubuntu.com --recv C99EF760 && gpg --export --armor C99EF760 | sudo apt-key add -
sudo apt-get update -y >> /dev/null 2>&1
sudo apt-get install vidalia -y >> /dev/null 2>> ~/Bureau/erreurs
sudo echo "ControlPort 9051" >> /etc/tor/torrc 2>> /dev/null
sudo echo "#!/bin/bash" > ~/Bureau/Tor.sh 2>> /dev/null
sudo echo "/etc/init.d/tor stop" >> ~/Bureau/Tor.sh 2>> /dev/null
sudo echo "vidalia" >> ~/Bureau/Tor.sh 2>> /dev/null
sudo chmod +x ~/Bureau/Tor.sh >> /dev/null 2>&1
sudo mv ~/Bureau/Tor.sh ~/.tor/ >> /dev/null 2>&1
sudo wget -c https://svn.vidalia-project.net/svn/vidalia/tags/vidalia-0.0.15/src/gui/res/128x128/tor-logo.png -P ~/.tor/ -q
sudo echo "#!/usr/bin/env xdg-open" > ~/Tor.desktop 2>> /dev/null
sudo echo " " >> ~/Tor.desktop 2>> /dev/null
sudo echo "[Desktop Entry]" >> ~/Tor.desktop 2>> /dev/null
sudo echo "Encoding=UTF-8" >> ~/Tor.desktop 2>> /dev/null 
sudo echo "Version=1.0" >> ~/Tor.desktop 2>> /dev/null
sudo echo "Type=Application" >> ~/Tor.desktop 2>> /dev/null
sudo echo "Terminal=false" >> ~/Tor.desktop 2>> /dev/null
sudo echo "Icon[fr_FR]=$HOME/.tor/tor-logo.png" >> ~/Tor.desktop 2>> /dev/null
sudo echo "Name[fr_FR]=Tor" >> ~/Tor.desktop 2>> /dev/null
sudo echo "Exec=$HOME/.tor/Tor.sh" >> ~/Tor.desktop 2>> /dev/null
sudo echo "Name=Tor" >> ~/Tor.desktop 2>> /dev/null
sudo echo "Icon=$HOME/.tor/tor-logo.png" >> ~/Tor.desktop 2>> /dev/null
sudo chmod +x ~/Tor.desktop 2>> /dev/null
sudo mv ~/Tor.desktop ~/Bureau/ >> /dev/null 2>&1
if [ -z `cat ~/Bureau/erreurs` ]; then echo "Installation de Tor: Fait" >> ~/Bureau/Info && echo "Installation de Tor: Fait"; else echo "Installation de Tor: Probleme" >> ~/Bureau/Info && echo "Installation de Tor: Probleme"; fi
sudo echo "Redemarrage du system dans 10s"
sleep 10
sudo reboot

Je suis sous ubuntu 9.04 et chez moi cela marche, Il installe le dépôt de tor puis tor, il modifie la configuration de privoxy (je sais cela ne va pas plaire a tout le monde la manière dont cela est fais), il installe le dépôt de vidalia et l'installe, puis il crée un lanceur sur le bureau pour lancé vidalia et pour finir un petit redémarrage system car je me suis aperçu que sinon il y avais un bug.

Le deuxième automatise l'installation de flash player 10 sous Firefox:

#!/bin/bash
#Script d'installation de Flash player 10 sur Firefox
#Auteur: Ankoù9
clear
echo -e "Installation du plugin Flash Player 10 (plugin pour Firefox):"
wget http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_10_linux.tar.gz -q >> /bin/null 2>> ~/Bureau/erreurs
tar -zxvf install_flash_player_10_linux.tar.gz >> /dev/null 2>> ~/Bureau/erreurs
sudo apt-get remove -y --purge flashplugin-nonfree gnash gnash-common mozilla-plugin-gnash swfdec-mozilla libflashsupport nspluginwrapper >> /dev/null 2>> ~/Bureau/erreurs
sudo rm -f /usr/lib/mozilla/plugins/*flash* >> /dev/null 2>> ~/Bureau/erreurs
sudo rm -f ~/.mozilla/plugins/*flash* >> /dev/null 2>> ~/Bureau/erreurs
sudo rm -f /usr/lib/firefox/plugins/*flash* >> /dev/null 2>> ~/Bureau/erreurs
sudo rm -f /usr/lib/firefox-addons/plugins/*flash* >> /dev/null 2>> ~/Bureau/erreurs
sudo rm -rfd /usr/lib/nspluginwrapper >> /dev/null 2>> ~/Bureau/erreurs
sudo cp libflashplayer.so /usr/lib/mozilla/plugins/ >> /dev/null 2>> ~/Bureau/erreurs
sudo ln -sf /usr/lib/mozilla/plugins/libflashplayer.so /usr/lib/firefox-addons/plugins/ >> /dev/null 2>> ~/Bureau/erreurs
sudo ln -sf /usr/lib/mozilla/plugins/libflashplayer.so /usr/lib/xulrunner-addons/plugins >> /dev/null 2>> ~/Bureau/erreurs
if [ -z `cat ~/Bureau/erreurs` ]; then echo "Installation du plugin Flash Player 10: Fait" >> ~/Bureau/Info && echo "Installation du plugin Flash Player 10: Fait"; else echo "Installation du plugin Flash Player 10: Probleme" >> ~/Bureau/Info && echo "Installation du plugin Flash Player 10: Probleme"; fi

Il retire de Firefox tous ce qui concerne flash afin de nettoyer, puis le télécharge et l'installe dans le bon répertoire.

Ps: prévenez moi si il y a un bug  ou pour améliorer mes scripts. J'accepte tous les remarques big_smile

Dernière modification par Ankou9 (Le 24/07/2009, à 14:55)

Hors ligne

#583 Le 23/07/2009, à 12:01

kyncani

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Tu pourrais retirer la quasi-totalité de tes redirections de cette manière (équivalente) :

{
    cmd1
    cmd2
    cmd3
} >>/dev/null 2>>~/Bureau/erreurs

Ca permettrait de retirer beaucoup de bruit.

Edit:

Ankou9 a écrit :

sudo rm -f ~/.mozilla/plugins/*flash* >> /bin/null 2>> ~/Bureau/erreurs

C'est /dev/null et non pas /bin/null

Dernière modification par kyncani (Le 23/07/2009, à 12:04)

Hors ligne

#584 Le 23/07/2009, à 13:23

Ankou9

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Merci a toi pour l'astuce avec les cmd  que je ne connaissais pas et merci aussi pour m'avoir averti de cette horrible erreur de /dev/null que je vais corrigé de ce pas

Dernière modification par Ankou9 (Le 23/07/2009, à 13:29)

Hors ligne

#585 Le 30/07/2009, à 16:07

RedLemon

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Un script pour faire un backup incrementiel de mon répertoire document.
Comme j'utilise ubuntu one cela me rend un grand service.

#!/bin/bash
#Définition des variables
FILE="/home/user/Documents"
DEST="/home/user/Ubuntu One/My Files/Documents/Documents.tar.bz2"


#Ŏn commence le programme
DEST_REP=$(dirname "$DEST")

if [ -e !="$DEST_REP" ]; then
{
    echo -e "Erreur : $DEST_REP n'existe pas !\n"
    exit 0;
}
fi

if [ -e "$DEST" ]; then
{
    echo -e "Creation de l'archive incrémentiel $DEST_REP/Documents.`date +%F_%H-%M-%S`.tar.bz2 en cour...\n"
    tar -j --create --file="$DEST_REP/Documents.`date +%F_%H-%M-%S`.tar.bz2" --listed-incremental="$DEST_REP/Documents.list" "$FILE"
    echo -e "Création terminée !\n"
}
else
{
    echo -e "$DEST n'existe pas.\n Création de la permiere archive en cours.\n Cela peux prendre du temp...\n"
    tar -j --create --file="$DEST" --listed-incremental="$DEST_REP/Documents.list" "$FILE"
    echo -e "Créaton terminée\n"
}
fi

exit 0;

Dernière modification par RedLemon (Le 30/07/2009, à 16:11)


« Je suis probablement l'inventeur de la combinaison Ctrl-Alt-Suppr, mais c'est Bill Gates qui l'a rendue célèbre ».
« I may have invented Control-Alt-Delete, but Bill Gates made it famous »
David Bradley
Mes wikis : http://doc.ubuntu-fr.org/utilisateurs/redlemon

Hors ligne

#586 Le 31/07/2009, à 08:12

Shrat

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

cpio ou rsync seraient plus indiqués non?

Hors ligne

#587 Le 01/08/2009, à 19:06

nesthib

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

J'ai posté un script qui permet de faire des sauvegardes automatiques des fichiers importants sur un serveur grâce à rsync
la procédure en détail sur cette page :
http://forum.ubuntu-fr.org/viewtopic.php?id=335549


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#588 Le 02/08/2009, à 00:09

Aurelien69

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonsoir,

   J'ai fait un script qui permet d'utiliser xwinwrap en graphique.
Xwinwrap utilise mplayer, et sert à lancer une vidéo ou un écran de veille en fond d'écran.
Mon script permet de générer la commande qui lance l'animation (vidéo ou écran de veille) en fond d'écran.
Cette commande peut alors être utilisée en tant que lanceur, raccourci clavier ou application au démarrage.

   http://forum.ubuntu-fr.org/viewtopic.php?id=335485

   J'ai rajouté également un script nautilus qui permet de lancer un groupe de vidéos sélectionnées, en fond d'écran.

   Étant novice, mes scripts sont loin d'être parafait (ça fait que quelques jours que je me suis mit au bash), donc si vous avez des remarques, nésitez pas. Je tient à préciser également que je ne connais pas la compatibilité de mes scripts sur d'autres PC. Sur mon l'un de mes deux PC il fonctionne parfaitement, mais sur mon netebook, ça ne fonctionne pas très bien a cause de la carte graphique je pense.


   Au passage j'en profite pour mettre un script qui cache les fichiers sélectionnés (script nautilus). Il ne modifie pas le nom des fichiers et dossiers, il utilise les fichiers ".hidden".

#!/bin/bash

   #On récupére les fichiers et le dossier
DOSSIER="$NAUTILUS_SCRIPT_CURRENT_URI/"
TOUT="$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
   #On supprime le "file//" devant le dossier
DOSSIER=${DOSSIER:7}
   #On remplace les "%20" par des espaces
DOSSIER="${DOSSIER//%20/ }"
#TOUT="${TOUT//%20/ }" #(mit en commentaire parce que ça sert à rien)
   #On isole le nom des fichiers
FICHIERS=${TOUT//$DOSSIER/}
   #On rajoute les fichiers dans le .hidden
echo -n "$FICHIERS" >> "$DOSSIER.hidden"

Faut le rendre exécutable et le placer dans /home/$LOGNAME/.gnome2/nautilus-scripts
Avec $LOGNAME qui correspond à votre dossier personnel.

Dernière modification par Aurelien69 (Le 02/08/2009, à 10:20)


Le jour où Microsoft inventera quelque chose qui ne plante pas, ce sera un clou.

Hors ligne

#589 Le 02/08/2009, à 07:52

draco31.fr

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

@ RedLemon

Je suis curieux du fonctionnement du test dans ce bloc de code :

if [ -e !="$DEST_REP" ]; then
{
    echo -e "Erreur : $DEST_REP n'existe pas !\n"
    exit 0;
}
fi

L'as-tu testé ?
J'aurai plutôt penché pour la syntaxe suivante :

if ! [ -e "$DEST_REP" ]; then
{
    echo -e "Erreur : $DEST_REP n'existe pas !\n"
    exit 0;
}
fi

Voir même, tester avec -d au lieu de -e puisque ce doit être un dossier.

@ Aurelien69

Il doit y avoir une autre variable que NAUTILUS_SCRIPT_CURRENT_URI pour avoir la liste de la sélection en format "normal" (sans %20, file// ...)

Quelle est la différence entre les variables LOGNAME et USER ?

Hors ligne

#590 Le 02/08/2009, à 10:19

Aurelien69

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour,

   Pour ce qui est de $LOGNAME et $USER, il ne semble pas y avoir une grande différence (mais je n'y connait pas grand chose). J'ai rencontré $LOGNAME lors de l'installation de certain logiciel comme VirtualBox, où l'utilisateur était désigné par cette variable il me semble. (En fait j'ai surtout zappé que ça existait $USER big_smile).

   Pour ce qui est de NAUTILUS_SCRIPT_CURRENT_URI, c'est en recherchant le nom de la variable pour le chemin des fichiers récupérés par le script, que je suis tombé ici : http://doc.dev.ubuntu-fr.org/nautilus_scripts
   Du coup j'ai essayé de bidouiller avec ces variables pour avoir un script qui fonctionne (chez moi en tout cas roll). Sur le lien que j'ai donné, il disent de faire des trucs du style :

IFS='
'
do_something $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS

Je sais pas à quoi sert IFS, mais sans l'utiliser ça marche chez moi.

Pour mon script nautilus de cachage de fichier, on peut supprimer la ligne TOUT="${TOUT//%20/ }"
En fait $TOUT n'as pas de %20 à la place des espaces (j'étais fatigué hier soir quand je l'ai fait tongue)


Le jour où Microsoft inventera quelque chose qui ne plante pas, ce sera un clou.

Hors ligne

#591 Le 02/08/2009, à 12:26

draco31.fr

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

L'IFS c'est l'Internal Field Separator : c'est donc le séparateur de champs bash.
les 2 premières lignes (équivalente à IFS=$'\n') permettent de définir l'IFS comme le passage à la ligne uniquement. Donc les espaces ne sont plus reconnu comme des séparateurs, et ainsi, un nom de fichier contenant un espace reste 1 seul argument.

Tu peux retrouver les explications sur l'IFS plus haut dans ce topic, il me semble qu'on en a déjà parlé.
Tu peux également regarder le script Nautilus que j'ai réalisé, il y a peu, toujours dans ce topic.

Hors ligne

#592 Le 04/08/2009, à 13:15

TraGiKomiK

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

salut smile

Passant regulierment sur ce post recuperé pas mal de scripts je viens de me dire qu'il etait tant pour moi de poster le script que je suis en train de faire (le premier) afin de le partager.

Pour info ce n'est que le debut (surtout des tests), je compte par la suite (quand j'aurais plus de temps dispo) rajouté une configuration au 1er demarrage (par zenity certainement).

[rajout] Ce script me sert donc a ranger tout les fichiers que je recupere sur internet et que je met en vrac dans un dossier (et oui pas de connexion a la "maison" donc faut faire rapide quand le net est dispo).

Les chemins sont bien sur a modifier tongue

##################################
# Rangement auto disque externe                     #
# Version 0.3                                                #
# Auteur: TraGiKomiK (latil_loic*at*hotmail.com) #
##################################

#!/bin/bash

#verifie le fichier de log
if [ -e $fichierlog ] ; then
echo "fichier log non present"
fi

#definition des variables#####

rep_origine=/media/WD-TraGiKomiK/atrier/
rep_images=/media/WD-TraGiKomiK/Images/
rep_musique=/media/WD-TraGiKomiK/Muzik/
rep_videos=/media/WD-TraGiKomiK/Videos/
rep_bleach=/media/WD-TraGiKomiK/mangas/bleach/
rep_scripts=/media/WD-TraGiKomiK/Scripts/
rep_scripts_int=/home/tragikomik/Scripts/
rep_pagesweb=/media/WD-TraGiKomiK/pages-html/
fichierlog=/media/WD-TraGiKomiK/.lograngementauto

#fonctions#####

fcimages(){
echo
echo "|# Traitement des images #|"
echo
mv -v *.png *.jpg *.jpeg *.gif *.xcf *.gif $rep_images ;
}

fcmuzik(){
echo
echo "|# Traitement de la musique #|"
echo
mv -v *.mp3 *.ogg *.wma $rep_musique ;
}

fcbleach(){
echo
echo "|# Traitement des episodes de Bleach #|"
echo
mv -v *Bleach* *bleach* $rep_bleach ;
}

fcvideos(){
echo
echo "|# Traitement des videos #|"
echo
mv -v *.mp4 *.avi *.divx *.dvix *.flv *.mpg *.mpeg *.ogv *.flash $rep_videos ;
}

fcscripts(){
echo
echo "|# Traitement des scripts #|"
echo
mv -v *.sh $rep_scripts ;
echo
echo "*Syncronisation vers le repertoire personnel*"
echo
rsync -av --ignore-errors --stats $rep_scripts $rep_scripts_int ;
}

fchtml(){
echo
echo "|# Traitement des pages web enregistrées #|"
echo
mv -v *.html $rep_pagesweb ;
}

#verification de la presence du disque externe

if [ ! -d "/media/WD-TraGiKomiK/" ]
then 
echo
echo "!!!WD-TraGiKomiK n'est pas present!!!"
echo
exit
fi

#on accede au repertoire ou sont stockés les fichiers a trier
cd $rep_origine ;

#rangement des images
fcimages ;

#rangement de la musique
fcmuzik ;

#rangement des episodes de Bleach
fcbleach ;

#rangement du reste des videos
fcvideos ;

#rangement des scripts
fcscripts ;

#rangement des pages html
fchtml ;

#Ecriture dans le log (fin)
echo "`date +%A" "%d" "%B" "%Y" - "%T`">>$fichierlog
echo "Rangement Auto effectué">>$fichierlog
echo "fin du script $0 : OK">>$fichierlog
echo "-------------------------------------------------">>$fichierlog

#titre de fermeture
echo
echo "Operations effectuées"
echo

Je mettrais les evolutions sur ce post, voir sur un post dedié si beaucoup d'avancement (j'essaye de me motiver la lolroll)

Voila big_smile

EDIT: Oups j'avais oublie de mettre a quoi me sert le script tongue

Dernière modification par TraGiKomiK (Le 04/08/2009, à 13:20)


Merci de mettre [RESOLU] dans le titre de votre post une fois le  probleme reglé!

GNU/Linux -> \o/

Hors ligne

#593 Le 04/08/2009, à 21:55

draco31.fr

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Le concept de ton script est intéressant.
Par contre, se baser sur les extensions, c'est revenir au mode de fonctionnement de Windows 95 big_smile

L'idéal serait de se baser sur les types mimes, mais je n'ai pas encore trouvé comment "grouper" les différents types mimes (par exemple divx/mp4/mov ...)

Hors ligne

#594 Le 04/08/2009, à 22:50

AnsuzPeorth-out

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

draco31.fr a écrit :

Le concept de ton script est intéressant.
Par contre, se baser sur les extensions, c'est revenir au mode de fonctionnement de Windows 95 big_smile

L'idéal serait de se baser sur les types mimes, mais je n'ai pas encore trouvé comment "grouper" les différents types mimes (par exemple divx/mp4/mov ...)

Pour avoir le type mimes, la commande file ne fait pas l'affaire ?
  Je ferais un truc du genre (completer le case avec les differents type souhaités. Mettre le mv à la place du echo bien sur smile):

#!/bin/bash
file /home/user/dossier/* | while read ligne
do
case $ligne in
*Ogg*|*MPEG*)
	echo "fichier ogg ou mpeg
nom du fichier: $(cut -d ":" -f1 <<< $ligne)";;
*Flash*)
	echo "media Flash
nom du fichier: $(cut -d ":" -f1 <<< $ligne)";;
*ASCII*)
	echo "Fichier texte ASCII
nom du fichier: $(cut -d ":" -f1 <<< $ligne)";;
esac

done
exit

ps:je n'ai pas beaucoup de fichier differents sur cette ordi, donc pour trouver les type mime à mettre dans le case, je suis limité, mais le principe y est wink

EDIT:Ou alors utiliser egrep, cela reduira le nombre de mv !

#!/bin/bash
var=$(file /home/user/dossier/*)
fichier_multimedia=$(egrep "(Ogg|MPEG)" <<< "$var" | cut -d ":" -f1 | xargs -I{} echo \"{}\")
echo $fichier_multimedia
exit

Dernière modification par AnsuzPeorth-out (Le 05/08/2009, à 09:37)

Hors ligne

#595 Le 05/08/2009, à 10:41

TraGiKomiK

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

salut big_smile

draco31.fr a écrit :

Le concept de ton script est intéressant.
Par contre, se baser sur les extensions, c'est revenir au mode de fonctionnement de Windows 95 big_smile

tongue oui je pensais bien que ce n'etait pas la meilleure solution, pour l'instant le script est vraiment basique et surout pour que je teste les variables et fonctions (premier script).

Du coup des que j'aurais un peu de temps je me pencherai sur les solutions que vous avez apportez, je ne connaissais meme pas egrep tongue roll smile

a bientot pour quelques evolutions big_smile


Merci de mettre [RESOLU] dans le titre de votre post une fois le  probleme reglé!

GNU/Linux -> \o/

Hors ligne

#596 Le 05/08/2009, à 15:11

Fenouille84

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour tout le monde.

Je suis en train de me faire un script, et j'aurais besoin d'une commande pour afficher le chemin absolu d'un fichier (et non pas d'une commande ! donc pas de wich, ni de whereis sad). J'ai cherché un peu partout, mais pas trouvé... hmm

Une idée les Ubunteros scripteurs ??


Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --

Hors ligne

#597 Le 05/08/2009, à 15:42

Shrat

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

find

Hors ligne

#598 Le 05/08/2009, à 15:49

The_Tito

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Fenouille84 a écrit :

Bonjour tout le monde.

Je suis en train de me faire un script, et j'aurais besoin d'une commande pour afficher le chemin absolu d'un fichier (et non pas d'une commande ! donc pas de wich, ni de whereis sad). J'ai cherché un peu partout, mais pas trouvé... hmm

Une idée les Ubunteros scripteurs ??

J'espère ne pas ne pas tromper entre chemin relatif et chemin absolu

fichier="/etc/issue.net";

echo $(dirname $fichier)           #renvoie: /etc
echo $(basename $fichier)         #renvoie: issue.net
echo $(dirname $fichier)/$(basename $fichier)           #renvoie: /etc/issue.net


On peut peut-être faire mieux ...

Hors ligne

#599 Le 05/08/2009, à 16:00

Fenouille84

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Shrat a écrit :

find

Merci shrat, j'y avais pensé, mais je n'ai pas trouvé la bonne structure pour arriver à ce que je voulais... hmm Tu pourrais développer un peu plus ta réponse stp roll

@ The_Tito
Merci pour ta réponse, mais si mon fichier a un chemin beaucoup plus long comment je fais ?? Un fichier du genre :
/home/pseudo/dossier/sous-dossier/classe/fichier-voulu

Edit 1 : je pense que je suis en bonne voie pour trouver !! 2 secondes, je teste smile

Edit 2 : bon j'ai réussi pour le chemin des fichiers, mais maintenant j'ai un autre soucis... sad  (voir le post suivant)

Dernière modification par Fenouille84 (Le 05/08/2009, à 16:30)


Ma page Deviant Art : conky inside ;-)
.
-- DropBox (online backup) : 2Go + 250 Mo pour vous et moi par parrainage --

Hors ligne

#600 Le 05/08/2009, à 16:24

The_Tito

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

@ Fenouille84
Ca marche également regarde

mkdir -p /tmp/a/b/c/d/e/f/g/h      # créer plusieurs sous-répertoires dans /tmp (ils seront supprimer au prochain redémarrage
touch /tmp/a/b/c/d/e/f/g/h/fichier.txt    # créer un fichier texte
fichier="/tmp/a/b/c/d/e/f/g/h/fichier.txt";      # emplacement du fichier

echo $(dirname $fichier)/$(basename $fichier)

renvoie: /tmp/a/b/c/d/e/f/g/h/fichier.txt

En faite depuis man dirname 
dirname - Ne conserver que la partie répertoire d’un nom de fichier

Hors ligne