Tests pour création répertoires et sous répertoires script bash
Résolu
pcsystemd
Messages postés
702
Date d'inscription
Statut
Membre
Dernière intervention
-
pcsystemd Messages postés 702 Date d'inscription Statut Membre Dernière intervention -
pcsystemd Messages postés 702 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je souhaite créer pour chaque références présentes dans un fichier txt un répertoire puis dans ce répertoire, je créais un sous répertoire "test" puis je donne a ces répertoires les bons droits. Pour cela je procède de la façon suivante dans mon script .
Contenu du fichier references.txt :
256
6489
325
3678
Contenu de mon script :
Le résultat :
256/test
6489/test
325/test
3678/test
etc..
Cela fonctionne très bien pour les nouvelles références, mais je souhaite également vérifier dans les dossiers déjà existants qu'il y a bien un sous repertoire "test" dans chaque et si ce n'est pas le cas le créer.
Comment puis je m'y prendre?
Merci
je souhaite créer pour chaque références présentes dans un fichier txt un répertoire puis dans ce répertoire, je créais un sous répertoire "test" puis je donne a ces répertoires les bons droits. Pour cela je procède de la façon suivante dans mon script .
Contenu du fichier references.txt :
256
6489
325
3678
Contenu de mon script :
for i in $(cat references.txt)
do
if [ ! -d "${i}" ]
then
mkdir -p ${i}/test
chown toto.titi ${i};chmod 775 ${i}
chown toto.titi ${i}/test;chmod 777 ${i}/test
else
echo "Error creation dossier ${i}" | mail -s "Error creation dossier ${i}"
fi
done
Le résultat :
256/test
6489/test
325/test
3678/test
etc..
Cela fonctionne très bien pour les nouvelles références, mais je souhaite également vérifier dans les dossiers déjà existants qu'il y a bien un sous repertoire "test" dans chaque et si ce n'est pas le cas le créer.
Comment puis je m'y prendre?
Merci
A voir également:
- Tests pour création répertoires et sous répertoires script bash
- Script vidéo youtube - Guide
- Creation compte gmail - Guide
- Création site web - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Création compte google - Guide
5 réponses
Salut,
$ tree
.
|-- rep1
|-- rep2
| ·-- test
|-- rep3
| ·-- toto
|-- rep4
| ·-- tutu
| ·-- titi
·-- rep5
·-- test
10 directories, 0 files
$ find . -maxdepth 1 -mindepth 1 -type d -exec mkdir -p {}/test \;
$ tree
.
|-- rep1
| ·-- test
|-- rep2
| ·-- test
|-- rep3
| |-- test
| ·-- toto
|-- rep4
| |-- test
| ·-- tutu
| ·-- titi
·-- rep5
·-- test
13 directories, 0 files
$
Salut,
et merci en premier lieu.Je vais tester mais deux questions sur ta ligne de commande :
il n'est pas prévu dans la commande de modifier les droits de chaque répertoire crée comment dans mon script hors il le faudrait.
Il faut que je créais le sous répertoire test uniquement dans les répertoires présents dans mon fichier réferences.txt donc la ligne ne devrait elle pas être plutôt de la sorte :
;-)
L'accès au savoir est la première liberté que chaque homme devrait avoir.
et merci en premier lieu.Je vais tester mais deux questions sur ta ligne de commande :
il n'est pas prévu dans la commande de modifier les droits de chaque répertoire crée comment dans mon script hors il le faudrait.
Il faut que je créais le sous répertoire test uniquement dans les répertoires présents dans mon fichier réferences.txt donc la ligne ne devrait elle pas être plutôt de la sorte :
find ${i} -maxdepth 1 -mindepth 1 -type d -exec mkdir -p {}/test \;
;-)
L'accès au savoir est la première liberté que chaque homme devrait avoir.
mais je penses que dans la ligne de commande que tu m'indiques il n'est pas prévu de modifier les droits de chaque répertoire créeExact, mais je ne faisais que répondre à ta demande :
mais je souhaite également vérifier dans les dossiers déjà existants qu'il y a bien un sous repertoire "test" dans chaque et si ce n'est pas le cas le créer.
;-))
Sinon, essaie ceci :
find . -maxdepth 1 -mindepth 1 -type d -exec mkdir -p -m 777 {}/test \; -exec chown toto.titi ${}/test \;
Cool merci, je teste.
et pour ma seconde question :
- Il faut que je créais le sous répertoire test uniquement dans les répertoires présents dans mon fichier réferences.txt donc la ligne ne devrait elle pas être plutôt de la sorte :
find ${i} -maxdepth 1 -mindepth 1 -type d -exec mkdir -p {}/test \;
find ${i} -maxdepth 1 -mindepth 1 -type d -exec chown toto.titi ${}/test \;
et pour ma seconde question :
- Il faut que je créais le sous répertoire test uniquement dans les répertoires présents dans mon fichier réferences.txt donc la ligne ne devrait elle pas être plutôt de la sorte :
find ${i} -maxdepth 1 -mindepth 1 -type d -exec mkdir -p {}/test \;
find ${i} -maxdepth 1 -mindepth 1 -type d -exec chown toto.titi ${}/test \;
Euh... ta question c'était :
Cela fonctionne très bien pour les nouvelles références, mais je souhaite également vérifier dans les dossiers déjà existants qu'il y a bien un sous repertoire "test" dans chaque et si ce n'est pas le cas le créer.
et c'est à celle là que j'ai répondu... en y incluant le
Cela fonctionne très bien pour les nouvelles références, mais je souhaite également vérifier dans les dossiers déjà existants qu'il y a bien un sous repertoire "test" dans chaque et si ce n'est pas le cas le créer.
et c'est à celle là que j'ai répondu... en y incluant le
chmod 777et le
chown blablabla;-(
Désolé zipe31 mais il est vraie que c'est un peu compliqué d'exprimer et surtout de faire comprendre ce que l'on souhaite faire par écrit.
Je vais essayer de m'expliquer par étapes :
Etape 1 :
Créer un répertoire par référence ainsi que son sous répertoire "test" s'ils n'existent pas déjà et cela pour les références présentes dans mon fichier références.txt puis ajouter les bons droits.
C'est ce que fait actuellement mon script.
Etape 2 :
Pour certaines références plus anciennes présentes dans mon fichier, il est possible que le répertoire existe déjà mais pas le sous répertoire "test", il me faut donc que je vérifie et que je créait ce sous répertoire "test" si nécessaire puis que je donne les bons droits.
C'est cette étape qui me pose problème.
Merci
Je vais essayer de m'expliquer par étapes :
Etape 1 :
Créer un répertoire par référence ainsi que son sous répertoire "test" s'ils n'existent pas déjà et cela pour les références présentes dans mon fichier références.txt puis ajouter les bons droits.
C'est ce que fait actuellement mon script.
Etape 2 :
Pour certaines références plus anciennes présentes dans mon fichier, il est possible que le répertoire existe déjà mais pas le sous répertoire "test", il me faut donc que je vérifie et que je créait ce sous répertoire "test" si nécessaire puis que je donne les bons droits.
C'est cette étape qui me pose problème.
Merci
Pour certaines références plus anciennes présentes dans mon fichier, il est possible que le répertoire existe déjà mais pas le sous répertoire "test"Ben il suffit de rajouter un
elif...thenà ton
if...then...elseet de créer le sous-répertoire.
Puis en y réfléchissant bien, inutile de vérifier si le répertoire de référence existe, autant créer le répertoire
testdirectement puisqu'avec l'option
-prien n'est fait s'il existe...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question