Ομαδική αντιγραφή αρχείων από πολλαπλούς φακέλους

Ξεκίνησε από za√‘ag, 09 Ιαν 2019, 03:11:24 ΜΜ

« προηγούμενο - επόμενο »

za√‘ag

   Έχω φακέλους χρηστών της μορφής 2lapexa-01 (έως 12) και 2lapexb-01 (έως 12) ... δηλ. 24 χρήστες και ένα φάκελο σε φλασάκι. Ο σκληρός δίσκος είναι εξωτερικός USB. Δηλ. οι φάκελοι των χρηστών έχουν τη μορφή:

/media/vag/serial_δισκου/2lapexa-01/Έγγραφα (αυτός ο φάκελος με ενδιαφέρει)

και στο φλασάκι /media/vag/serial_flash_disk/sxoleio_a

Θέλω λοιπόν με ένα script να αντιγράψω όσα αρχεία περιέχει ο φάκελος Έγγραφα για κάθε χρήστη  στον φάκελο sxoleio-a στο φλασάκι .... τα αρχεία που θα αντιγραφτούν έχουν ως όνομα τα επώνυμα των μαθητών. Αν για κάποιο λόγο κάποιος έχει βάλει παραπάνω από ένα αρχείο στο φάκελό του δεν ξέρω πώς πρέπει να αποφευχθεί η τυχόν ταύτισή του με άλλον ... μπορεί πχ να ρωτάει τι να κάνει ...

Ευχαριστώ
«Δεν υπάρχει λόγος να θέλει κανείς έναν υπολογιστή στο σπίτι του»--Ken Olson, πρ. της DEC, 1977
«Τα 640KB RAM επαρκούν για να τρέξει κάθε πρόγραμμα»--Bill Gates
Δείτε κι άλλες ιστορικές ατάκες  εδώ

alkisg

Παίξε με την εντολή ls μέχρι να σου δείξει αυτά που θες. Παράδειγμα:
ls /media/vag/serial_δισκου/2lapexa-*/Έγγραφα/*.odt

Αφού το πετύχεις, άλλαξε την ls σε cp:
cp /media/vag/serial_δισκου/2lapexa-*/Έγγραφα/*.odt /media/vag/serial_flash_disk/sxoleio_a/

za√‘ag

Δίκιο έχεις .... είχα στο μυαλό μου κάτι πιο πολύπλοκο (with .. do ) κάτι με επανάληψη ... που δεν το πολυκατέχω γιαυτό το έβαλα εδώ ...

Ευχαριστώ
«Δεν υπάρχει λόγος να θέλει κανείς έναν υπολογιστή στο σπίτι του»--Ken Olson, πρ. της DEC, 1977
«Τα 640KB RAM επαρκούν για να τρέξει κάθε πρόγραμμα»--Bill Gates
Δείτε κι άλλες ιστορικές ατάκες  εδώ

za√‘ag

Παράθεση από: alkisg στις 09 Ιαν 2019, 06:41:30 ΜΜ
Παίξε με την εντολή ls μέχρι να σου δείξει αυτά που θες. Παράδειγμα:
ls /media/vag/serial_δισκου/2lapexa-*/Έγγραφα/*.odt

...

και πώς το βάζεις να ψάξει όλο το φάκελο του χρήστη (όχι μόνο το Έγγραφα);
και μετά να τα βάλει όλα μαζί σε ενα φάκελο στο φλασάκι;
«Δεν υπάρχει λόγος να θέλει κανείς έναν υπολογιστή στο σπίτι του»--Ken Olson, πρ. της DEC, 1977
«Τα 640KB RAM επαρκούν για να τρέξει κάθε πρόγραμμα»--Bill Gates
Δείτε κι άλλες ιστορικές ατάκες  εδώ

za√‘ag

Παράθεση από: za√'ag στις 26 Ιαν 2019, 05:41:55 ΜΜ
και πώς το βάζεις να ψάξει όλο το φάκελο του χρήστη (όχι μόνο το Έγγραφα);
και μετά να τα βάλει όλα μαζί σε ενα φάκελο στο φλασάκι;

Οκ ... το έφτιαξα ... και με script !!

αυτό το στυλ:

for j in {1..9}
 do
    sudo find /media/vag/95e42ee9-41b8-483e-9a4d-687d6cf61191/2lapexa-0$j/. -print | grep -i '.*[.]sb2' > 2lapexa-0$j
    mapfile -t files < 2lapexa-0$j
    cp -- "${files[@]}" /media/vag/LG_DRIVE/ERGASIES/2lapapl/test/
 done

for j in {10..12}
 do
   sudo find /media/vag/95e42ee9-41b8-483e-9a4d-687d6cf61191/2lapexa-$j/. -print | grep -i '.*[.]sb2' > 2lapexa-$j
   mapfile -t files < 2lapexa-$j
   cp -- "${files[@]}" /media/vag/LG_DRIVE/ERGASIES/2lapapl/test/
done
«Δεν υπάρχει λόγος να θέλει κανείς έναν υπολογιστή στο σπίτι του»--Ken Olson, πρ. της DEC, 1977
«Τα 640KB RAM επαρκούν για να τρέξει κάθε πρόγραμμα»--Bill Gates
Δείτε κι άλλες ιστορικές ατάκες  εδώ

happiness

Υπάρχει περίπτωση με αυτό το σκριπτ να μπορέσω να κάνω και μετονομασία, προσθέτοντας ένα επίθεμα πχ 01,02... ανάλογα τον client και μετά να αντιγράψω τα αρχεία;