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 28/11/2016, à 20: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, à 21: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, à 21: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, à 21: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, à 21: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, à 21: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, à 21: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, à 21: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 sad

Hors ligne

#9 Le 28/11/2016, à 21: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, à 22: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. hmm

Hors ligne

#11 Le 28/11/2016, à 22: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, à 22: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, à 22: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, à 22: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, à 22: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, à 22: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, à 23: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.

Hors ligne

#18 Le 28/11/2016, à 23:09

KalenShiv

Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire

Que fait "nullglob" ?

Hors ligne

#19 Le 28/11/2016, à 23: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.

Hors ligne

#20 Le 28/11/2016, à 23: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, à 23:26)

Hors ligne

#21 Le 29/11/2016, à 06:45

pingouinux

Re : Scripts qui parcours et sauvegarde des fichiers dans un répertoire

KalenShiv a écrit :

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"/**/*
Watael a écrit :

ça te fait regarder dans le man de bash ?

Excellent… big_smile

Hors ligne