#1 Le 28/11/2016, à 19:08
- KalenShiv
Scripts qui parcours et sauvegarde des fichiers dans un répertoire
Bonjour,
Etant un très gros débutant en shell, je souhaite pour un projet, écrire un script permettant de parcourir des répertoires à partir d'un argument et de recopier tous les fichiers qu'on y trouve dans un répertoire "~/SAVE". Cependant les commandes cp et find sont interdites du coup je bloque.
Merci de bien vouloir m'aider.
Hors ligne
#2 Le 28/11/2016, à 20:00
- Andynosaur
Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire
Sais-tu pourquoi les commandes cp et find sont interdites ?
Tu peux aussi utiliser Rsync.
Mais il faudrait que tu donnes un exemple de ce que tu cherche à faire... :-)
thelongestline.ovh
Desktop Fedora 24, 64bits
Proxmox 4.2-2 sur NUC.
Hors ligne
#3 Le 28/11/2016, à 20:14
- KalenShiv
Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire
Aucune idée c'est mon professeur qui souhaite qu'on ne l'utilise pas. Justement j'ai eu aussi cette idée pour Rsync mais il refuse aussi cette option. Je suis vraiment bloqué pour créer un script qui parcoure les fichiers sans find. Mais pour sauvegarder les fichiers j'ai penser à créer un shellscript permettant d'archiver les fichiers à l'aide de tar et d'envoyer l'archive crée dans un répertoire nommé "~/SAVE". Mais je ne sais vraiment pas comment faire...
N'hésite pas à me poser d'autres questions si je n'ai pas été clair.
Hors ligne
#4 Le 28/11/2016, à 20:23
- Andynosaur
Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire
Moi je suis un fan du rsync, c'est dommage que tu puisses pas l'utiliser :-S !
Le probleme avec la synchronisation en archivage c'est que tu vas te retrouver avec un tas d'archives identiques.
A moins que tu aies le droit d'utiliser la commande rm et dans ce cas, supprimer l'ancienne archive précédemment créée...
thelongestline.ovh
Desktop Fedora 24, 64bits
Proxmox 4.2-2 sur NUC.
Hors ligne
#5 Le 28/11/2016, à 20:25
- KalenShiv
Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire
Ah oui pas bête. Normalement oui je peux l'utiliser ! :-)
Hors ligne
#6 Le 28/11/2016, à 20:26
- Andynosaur
Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire
Sinon, il y a aussi la commande dump/restore qui te permettrait d'examiner les anciennes sauvegardes.
Je la connais pas trop, mais c'est de la sauvegarde incrémentale, c'ets propre.
thelongestline.ovh
Desktop Fedora 24, 64bits
Proxmox 4.2-2 sur NUC.
Hors ligne
#7 Le 28/11/2016, à 20:28
- Andynosaur
Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire
Tu ferais mieux de lire ce truc :
Y'a une bonne explication pour l'archivage TAR, et la sauvegarde incrémentale
https://openclassrooms.com/courses/la-s … -gnu-linux
thelongestline.ovh
Desktop Fedora 24, 64bits
Proxmox 4.2-2 sur NUC.
Hors ligne
#8 Le 28/11/2016, à 20:29
- KalenShiv
Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire
Bah en fait la sauvegarde incrémentale fait partie d'un projet différent ce n'est malheureusement pas le mien
Hors ligne
#9 Le 28/11/2016, à 20:32
- KalenShiv
Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire
Ok j'vais lire ça merci, je reviens si j'ai un autre questions à poser ^^
Hors ligne
#10 Le 28/11/2016, à 21:01
- KalenShiv
Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire
Re
J'viens de voir ça et ça m'aide bcp merci. Par contre, le problème, c'est que je dois crée un script qui parcours des répertoires à partir d'un argument.
Hors ligne
#11 Le 28/11/2016, à 21:06
- pingouinux
Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire
Bonsoir,
Voici une suggestion :
shopt -s globstar
for fic in repertoire_de_depart/**/*
do
[ -f "$fic" ] && cat "$i" > ~/SAVE/"${fic##*/}"
done
Hors ligne
#12 Le 28/11/2016, à 21:21
- KalenShiv
Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire
Merci pingouinux pour ta réponse Tu pourrais expliquer rapidement chaque ligne s'il te plaît ?
Hors ligne
#13 Le 28/11/2016, à 21:33
- pingouinux
Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire
shopt -s globstar # Pour activer la syntaxe **/* => On parcourt l'arborescence (ajouter dotglob pour traiter aussi les fichiers cachés)
for fic in repertoire_de_depart/**/* # Boucle sur tous les fichiers et répertoires de l'arborescence
do
# On ne traite que les fichiers (cat recopie le contenu du fichier)
# "$fic" = fichier avec son chemin
# "${fic##*/}" = basename du fichier
[ -f "$fic" ] && cat "$i" > ~/SAVE/"${fic##*/}"
done
Hors ligne
#14 Le 28/11/2016, à 21:43
- KalenShiv
Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire
Merci pour les indications je comprends mieux. Par contre "repertoire_de_depart" repésente le répértoire dans lequelle on doit copier les fichiers c'est bien ça ? D'ailleurs on doit parcourir un répertoir à partir d'un argument, ton script ne le fait pas non ?
Hors ligne
#15 Le 28/11/2016, à 21:47
- KalenShiv
Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire
Tu pourrais expliquer comment on execute ton script stp ? J'essaie de l'executer mais rien ne se passe.
Hors ligne
#16 Le 28/11/2016, à 21:56
- KalenShiv
Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire
Ah non c'est bon je viens de tester. Le fichier du répértoire envoie bien le fichier dans le repertoire par contre quand j'execute ton script ils m'indiquent : "cat: ``: Aucun fichier ou dossier de ce type" Pourquoi ?
Hors ligne
#17 Le 28/11/2016, à 22:07
- Watael
Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire
il peut être utile d'ajouter nullglob :
$ ( cd empty/; shopt -s globstar; for i in ./**/*; do echo $i; done)
./**/*
$ ( cd empty/; shopt -s globstar nullglob; for i in ./**/*; do echo $i; done)
$
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#18 Le 28/11/2016, à 22:09
- KalenShiv
Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire
Que fait "nullglob" ?
Hors ligne
#19 Le 28/11/2016, à 22:15
- Watael
Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire
ça te fait regarder dans le man de bash ?
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#20 Le 28/11/2016, à 22:26
- KalenShiv
Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire
Mais du coup comment faire un script qui parcours un repertoire 'à partir d'un argument' ? (Il me reste plus que ça normalement, le reste ça me paraît bon donc merci pour ça les gars !)
Dernière modification par KalenShiv (Le 28/11/2016, à 22:26)
Hors ligne
#21 Le 29/11/2016, à 05:45
- pingouinux
Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire
Mais du coup comment faire un script qui parcours un repertoire 'à partir d'un argument' ?
Tu remplaces repertoire_de_depart par "$1"
for fic in "$1"/**/*
ça te fait regarder dans le man de bash ?
Excellent…
Hors ligne