#1 Le 23/11/2009, à 21:37
- Julius
Script pour cacher les fichiers sous-titres
Salut,
J'aimerai pouvoir cacher les fichiers sous-titres dans mes dossiers lorsque je les visualise avec Nautilus.
Je ne touche rien en Bash bien que je compte m'y mettre dès que j'aurai du temps (pas demain quoi... ). Est-ce que ce serait facile de faire un script qui pourrait parcourir un dossier et ses sous-dossiers à la recherche de fichiers d'un certain type (*.srt par exemple) et qui ajouterait dans le fichier .hidden de nautilus les fichiers en question.
Je sais que ça se fait facilement dans un dossier avec la commande suivante :
ls *.srt | tee .hidden
Mais aucune idée de comment intégrer ça dans un script, surtout si il doit parcourir différents dossiers......
Merci à ceux qui prendront le temps de me répondre ! Si vous avez une solution plus simple par rapport à mon problème de départ je suis preneur.
Hors ligne
#2 Le 24/11/2009, à 03:29
- AnsuzPeorth
Re : Script pour cacher les fichiers sous-titres
Bjr,
Vu qye personne n'a voulu s'y coller (pourtant c'est une demande basique..pi etre pour ça d'ailleurs !)
Avec find :
#! /bin/bash
find /home/dossier/racine -maxdepth 2 -type f -name "*\.txt" | while read ligne
do
DOSSIER=$(dirname "$ligne")
FICHIER=$(basename "$ligne")
echo "${FICHIER}" >> "${DOSSIER}/.hidden"
done
exit
L'option -maxdepth pour régler la récursivité (l'enlever pour faire tous les sous dossiers)
Remplacer le .txt par l'extension recherchée (tjrs dans la commande find !)
C'est une solution parmis d'autres !
PS: Pour éviter le pipe, il est possible d'écrire la boucle différemment :
while read ligne
do
...
...
done < <(find ......)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#3 Le 24/11/2009, à 17:03
- sputnick
Re : Script pour cacher les fichiers sous-titres
@AnsuzPeorth, le "pipe" est interdit dans ta religion ?
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#4 Le 25/11/2009, à 00:00
- AnsuzPeorth
Re : Script pour cacher les fichiers sous-titres
@AnsuzPeorth, le "pipe" est interdit dans ta religion ?
Ca dépends si c'est féminin ou masculin !
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#5 Le 25/11/2009, à 02:47
- AnsuzPeorth
Re : Script pour cacher les fichiers sous-titres
Re
J'oublie tjrs le bash ...!
Cela pourrait s'écrire plus facilement:
while read ligne
do
echo "${ligne##*/}" >> "${ligne%/*}"
done < <(find /home/dossier/racine -maxdepth 2 -type f -name "*\.txt")
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#6 Le 25/11/2009, à 11:44
- Totor
Re : Script pour cacher les fichiers sous-titres
Re
J'oublie tjrs le bash ...!
Cela pourrait s'écrire plus facilement:while read ligne do echo "${ligne##*/}" >> "${ligne%/*}" done < <(find /home/dossier/racine -maxdepth 2 -type f -name "*\.txt")
Attention, il existe une exception où la version ${var%/*} n'est pas équivalente à l'instruction dirname "${var}" : lorsque ${var} n'inclu pas le nom de dossier, ${var%/*} retourne alors "${var}" alors que dirname "${var}" retourne "." !
Mais cela ne peut arriver dans notre cas du fait du format renvoyé par l'instruction find.
Par ailleurs, un erreur s'est glissée dans ton script : echo "${ligne##*/}" >> "${ligne%/*}" à remplacer par echo "${ligne##*/}" >> "${ligne%/*}/.hidden"
Dernière modification par Totor (Le 25/11/2009, à 17:24)
-- Lucid Lynx --
Hors ligne
#7 Le 25/11/2009, à 14:12
- AnsuzPeorth
Re : Script pour cacher les fichiers sous-titres
L'oeil du maître ...!
Tu vois, tu es tjrs indispensable ici
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#8 Le 30/11/2009, à 21:58
- Julius
Re : Script pour cacher les fichiers sous-titres
Merci beaucoup à toi AnsuzPeorth !!! (et merci pour la relecture, Totor)
Je testerai ça le week-end prochain parce que mes semaines sont relativement chargées pour l'instant :-)
@ bientôt
Hors ligne