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 02/02/2012, à 13:17

XP-1000

[RESOLU] mkdir -p en ftp

Bonjour à toutes et  à tous,
encore une fois je viens mendier votre aide ^^

J'aurais besoin, dans un script, de créer plusieurs répertoires sans savoir si l'un d'eux existe.
En bash la commande "mkdir -p [rep1/rep2]" fonctionne très bien puisqu'elle créée rep1 s'il n'existe pas et rep2 dans rep1 si ce dernier existe.
Malheureusement, en ftp, mkdir n'accepte le paramètre "-p"

Si quelqu'un a une idée brillante, je lui en serai reconnaissant big_smile

Merci d'avance,

A la prochaine

Dernière modification par XP-1000 (Le 05/02/2012, à 13:42)

Hors ligne

#2 Le 02/02/2012, à 15:25

johndo

Re : [RESOLU] mkdir -p en ftp

lftp ou ssh

Hors ligne

#3 Le 02/02/2012, à 22:35

XP-1000

Re : [RESOLU] mkdir -p en ftp

Merci pour ta réponse qui est pertinente d'ailleurs,
Le problème est que, et j'aurais du le préciser avant, je voudrais que ce script fonctionne sur toutes les machines linux basiques.
Je veux donc qu'il ne dépende d'aucun logiciel non inclus d'origine dans linux.
Or, le seul moyen que je connais pour automatiser des commandes en ssh dans un script bash c'est expect qui n'est pas dans toutes les distribs linux.
Ce qui élimine ssh. Quand à lftp, c'est le même problème encore plus explicite.

Merci encore tout de même pour ta réponse, en espérant que quelqu'un est une autre solution

Hors ligne

#4 Le 02/02/2012, à 23:17

vince gakusei

Re : [RESOLU] mkdir -p en ftp

Bonjour,

C'es un peu plus basique mais l'expression suivante bien qu'un peu longue semble fonctionner:

(cd rep1 && mkdir rep2) 2>/dev/null || (mkdir rep1 && cd rep1 && mkdir rep2) 2>/dev/null

Il doit y avoir plus simple, mais mes connaissances en script shell ne sont hélas pas très étendues.

Bon courage

Hors ligne

#5 Le 03/02/2012, à 02:16

Levi59

Re : [RESOLU] mkdir -p en ftp

Un petit exemple de script qui peut effectuer l'équivalent d'un mkdir -p :

#!/bin/bash

fonction creation() {
    [[ -n ${1%%/*} ]] && {
        [[ ! -d ${1%%/*} ]] && mkdir "${1%%/*}"
        (cd "${1%%/*}"; creation "${1#*/}")
    }
}

for i in $@
do
    creation "$i"
done

Il suffit de créer le script (le nommer par exemple mkdirp) et de le lancer ainsi :

mkdirp "/ARBO/RESCENCE/1" "./ARBO/RESCENCE/2" "~/ARBO/RESCENCE/3"

Dernière modification par Levi59 (Le 03/02/2012, à 02:17)

Hors ligne

#6 Le 03/02/2012, à 21:30

johndo

Re : [RESOLU] mkdir -p en ftp

XP-1000 a écrit :

Or, le seul moyen que je connais pour automatiser des commandes en ssh dans un script bash c'est expect qui n'est pas dans toutes les distribs linux.
Ce qui élimine ssh.

hmm
et l'option -i de ssh ??? elle sert à quoi ?

Hors ligne

#7 Le 05/02/2012, à 13:42

XP-1000

Re : [RESOLU] mkdir -p en ftp

Levi59, merci je vais utiliser ce script.
johndo, je ne veux pas utiliser de certificats et il me semble que l'option -i fonctionne dessus.

Merci en tout cas a vous,
je mets résolu.

Hors ligne

#8 Le 05/02/2012, à 15:25

Levi59

Re : [RESOLU] mkdir -p en ftp

Edit:
je n'ai pas essayé mais un chemin de fichier relatif du type "./unchemin/quelconque" pourrait poser problème. à vérifier.

Hors ligne

#9 Le 05/02/2012, à 22:16

XP-1000

Re : [RESOLU] mkdir -p en ftp

Levi59 a écrit :

Edit:
je n'ai pas essayé mais un chemin de fichier relatif du type "./unchemin/quelconque" pourrait poser problème. à vérifier.

Ce n'est pas un problème pour mon script alors c'est parfait merci encore

Hors ligne