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.

#1 Le 07/01/2012, à 17:45

weezixx

Juste taper le nom du fichier pour qu'il souvre

Bonjour,

voila mon idée : J'ai juste à taper le titre d'un document,qu'importe le format, (.pdf, .doc, .txt, …) pour qu'automatiquement il s'ouvre avec le bon programme.

Qu'il soit dans Documents, Vidéos, Musiques, … Peu importe.

Et le must serai aussi l'auto complétion.

J'ai déjà eu ma petite idée en travaillant avec "alias" mais j'en suis pas sûr.

Des idées ?

Merci

Hors ligne

#2 Le 11/01/2012, à 19:45

weezixx

Re : Juste taper le nom du fichier pour qu'il souvre

up

Hors ligne

#3 Le 11/01/2012, à 20:14

Bousky

Re : Juste taper le nom du fichier pour qu'il souvre

C'est pas possible dans le terminal : une commande doit être soit une structure reconnue par le shell (le programme qui interprète les commandes) soit une commande à proprement parler (un mot clef ou un exécutable puis des argument). Il y a cependant la commande xdg-open (et aussi gnome-open et kde-open selon ton environnement de bureau) qui, utilisée avec un nom de fichier, permet d'ouvrir celui-ci comme si tu avais double-cliqué dessus ; et le shell propose naturellement l'auto-complétion des noms de fichier. La fenêtre d'exécution de gnome (Alt+F2) permet indifféremment de lancer un programme, d'ouvrir un fichier ou un dossier, mais il n'y a pas d'auto-complétion (d'autres environnements de bureau peuvent avoir des fonctionnalités similaires plus ou moins avancées). Enfin, si tu ouvres souvent le même fichier avec le même programme, il est possible d'utiliser un alias :

alias mon_fichier_texte='gedit /chemin/complet/vers/mon_fichier_texte.txt &>/dev/null & disown -h'

Dans ce cas, il est important de mettre le chemin complet pour que l'alias fonctionne quelque soit le dossier de travail, et « &>/dev/null & disown -h » permet de séparer complétement la commande du terminal.


En ce qui me concerne, j'ai ajouté à mon bashrc cette fonction :

function open {
    while [ "$1" ] ; do
        sh -c "cd '`dirname "$1"`';xdg-open '`basename "$1"`'" &> /dev/null
        shift
    done
}

Dernière modification par Bousky (Le 11/01/2012, à 20:50)


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#4 Le 11/01/2012, à 20:25

miniSeb

Re : Juste taper le nom du fichier pour qu'il souvre

gnome-open file

Sous Gnome, évidemment wink

Hors ligne

#5 Le 11/01/2012, à 20:57

AnsuzPeorth

Re : Juste taper le nom du fichier pour qu'il souvre

Bjr,
Une solution est de rechercher via find ou locate.
Pour la completion, le plus simple est de proposer une liste avec les fichiers trouvés.

tab=( $(locate -b "\fichier recherché") )
grep -nE '*' <<< "$(echo ${tab[*]} | xargs -n 1)"
read
xdg-open "${tab[$((REPLY-1))]}"

On peut remplacer locate par find, à voir selon les besoins.

Dernière modification par AnsuzPeorth (Le 11/01/2012, à 20:58)


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#6 Le 21/01/2012, à 22:22

weezixx

Re : Juste taper le nom du fichier pour qu'il souvre

(Désolé du retard)

moi j'avais dans l'idée de lister tous les fichiers utiles (.pdf, .txt, .jpg, ...), de les mettre en alias avec leurs programme d'ouverture appropriés.

Vous en pensez quoi ? Bonne ou mauvaise idée ?

Et puis améliorer le script en ayant juste à cliquer dessus pour qu'ils trouvent les nouveaux fichiers et les ajouter à .bashrc sans faire de doublons.

Hors ligne

#7 Le 22/01/2012, à 00:33

Hizoka

Re : Juste taper le nom du fichier pour qu'il souvre

Ca va être super lourd ton truc...

xdg-open, règle le soucis du programme à utiliser, car il le détermine tout seul.

perso, j'aurais fait un peu comme ansuzpoerth :

function open_file
{
# ${1} : nom du fichier avec respect de la casse, sinon remplacer name par iname
# ! -regex ".*/\..*" : exclue les fichiers et dossiers cachés
find "${HOME}" -name "${1}"* -type f ! -regex ".*/\..*" -exec xdg-open {} \;
}

open_file Aspichat

mais le soucis :
- c'est long, très long en fonction de la taille de tes durs (pour rechercher une video à la con :1min10 )
- Si tu as plusieurs fichiers avec le même nom mais une extension différente, c'est bordélique...

Perso je ferais :

function open_file
{
# ${1} : précision de l'emplacement du fichier
# ${2} : nom du fichier avec respect de la casse, sinon remplacer name par iname
# ! -regex ".*/\..*" : exclue les fichiers et dossiers cachés
find "${HOME}/${1}" -name "${2}"* -type f ! -regex ".*/\..*" -exec xdg-open {} \;
}

open_file "Multimedia/Videos" Aspichat

car je range mes fichiers relativement clairements... (videos, audios, images...)
mais ca fait gagner du temps... (2-3sec pour retrouver mon fichier)

sinon tu peux toujours te créer une liste de fichier dans un fichier texte...
genre :

find "${HOME}" ! -regex ".*/\..*" -type f \( -iname "*.jpg" -o -iname "*.png" -o -iname "*.pdf" \) > "fichierliste"

et rechercher dedans quand tu appelles un fichier :

function open_file
{
# ${1} : nom du fichier avec respect de la casse
xdg-open "$(egrep ".*/${1}\." "fichierliste")"
}

open_file Aspichat

Alors c'est un gros gain de temps lors du lancement du fichier mais il faut regulierement lister tes fichiers...


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#8 Le 22/01/2012, à 01:06

Bousky

Re : Juste taper le nom du fichier pour qu'il souvre

Le fait de chercher dans une liste plutôt que sur le disque revient en quelque sorte à utiliser locate. Avec une fonction du genre :

function open {
        xdg-open $(locate "$1" | head -n 1)
}

Dernière modification par Bousky (Le 22/01/2012, à 02:17)


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#9 Le 22/01/2012, à 01:39

Hizoka

Re : Juste taper le nom du fichier pour qu'il souvre

chez moi locate ne me trouve pas le fichier...

mais si ca passe chez vous, alors oui, autant l'utiliser...


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#10 Le 24/01/2012, à 00:17

biotechman

Re : Juste taper le nom du fichier pour qu'il souvre

Pour locate, il faut :
- soit que tu réactualises le database par un

sudo updatedb

-soit que tu configures locate pour qu'il cherche dans plus de dossier

J'avais fait un post dessus il y a un moment.

Dernière modification par biotechman (Le 24/01/2012, à 00:18)


May the source be with you
http://biotechman.com/wordpress

Hors ligne