Το Στέκι των Πληροφορικών

Γενικά => Τεχνική υποστήριξη => Linux => Μήνυμα ξεκίνησε από: za√‘ag στις 09 Ιαν 2019, 03:11:24 ΜΜ

Τίτλος: Ομαδική αντιγραφή αρχείων από πολλαπλούς φακέλους
Αποστολή από: za√‘ag στις 09 Ιαν 2019, 03:11:24 ΜΜ
   Έχω φακέλους χρηστών της μορφής 2lapexa-01 (έως 12) και 2lapexb-01 (έως 12) ... δηλ. 24 χρήστες και ένα φάκελο σε φλασάκι. Ο σκληρός δίσκος είναι εξωτερικός USB. Δηλ. οι φάκελοι των χρηστών έχουν τη μορφή:

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

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

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

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

Αφού το πετύχεις, άλλαξε την ls σε cp:
cp /media/vag/serial_δισκου/2lapexa-*/Έγγραφα/*.odt /media/vag/serial_flash_disk/sxoleio_a/
Τίτλος: Απ: Ομαδική αντιγραφή αρχείων από πολλαπλούς φακέλους
Αποστολή από: za√‘ag στις 09 Ιαν 2019, 08:33:17 ΜΜ
Δίκιο έχεις .... είχα στο μυαλό μου κάτι πιο πολύπλοκο (with .. do ) κάτι με επανάληψη ... που δεν το πολυκατέχω γιαυτό το έβαλα εδώ ...

Ευχαριστώ
Τίτλος: Απ: Ομαδική αντιγραφή αρχείων από πολλαπλούς φακέλους
Αποστολή από: za√‘ag στις 26 Ιαν 2019, 05:41:55 ΜΜ
Παράθεση από: alkisg στις 09 Ιαν 2019, 06:41:30 ΜΜ
Παίξε με την εντολή ls μέχρι να σου δείξει αυτά που θες. Παράδειγμα:
ls /media/vag/serial_δισκου/2lapexa-*/Έγγραφα/*.odt

...

και πώς το βάζεις να ψάξει όλο το φάκελο του χρήστη (όχι μόνο το Έγγραφα);
και μετά να τα βάλει όλα μαζί σε ενα φάκελο στο φλασάκι;
Τίτλος: Απ: Ομαδική αντιγραφή αρχείων από πολλαπλούς φακέλους
Αποστολή από: za√‘ag στις 26 Ιαν 2019, 07:21:16 ΜΜ
Παράθεση από: 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
Τίτλος: Απ: Ομαδική αντιγραφή αρχείων από πολλαπλούς φακέλους
Αποστολή από: happiness στις 26 Μαρ 2019, 09:16:57 ΠΜ
Υπάρχει περίπτωση με αυτό το σκριπτ να μπορέσω να κάνω και μετονομασία, προσθέτοντας ένα επίθεμα πχ 01,02... ανάλογα τον client και μετά να αντιγράψω τα αρχεία;