Έχω φακέλους χρηστών της μορφής 2lapexa-01 (έως 12) και 2lapexb-01 (έως 12) ... δηλ. 24 χρήστες και ένα φάκελο σε φλασάκι. Ο σκληρός δίσκος είναι εξωτερικός USB. Δηλ. οι φάκελοι των χρηστών έχουν τη μορφή:
/media/vag/serial_δισκου/2lapexa-01/Έγγραφα (αυτός ο φάκελος με ενδιαφέρει)
και στο φλασάκι /media/vag/serial_flash_disk/sxoleio_a
Θέλω λοιπόν με ένα script να αντιγράψω όσα αρχεία περιέχει ο φάκελος Έγγραφα για κάθε χρήστη στον φάκελο sxoleio-a στο φλασάκι .... τα αρχεία που θα αντιγραφτούν έχουν ως όνομα τα επώνυμα των μαθητών. Αν για κάποιο λόγο κάποιος έχει βάλει παραπάνω από ένα αρχείο στο φάκελό του δεν ξέρω πώς πρέπει να αποφευχθεί η τυχόν ταύτισή του με άλλον ... μπορεί πχ να ρωτάει τι να κάνει ...
Ευχαριστώ
Παίξε με την εντολή ls μέχρι να σου δείξει αυτά που θες. Παράδειγμα:
ls /media/vag/serial_δισκου/2lapexa-*/Έγγραφα/*.odt
Αφού το πετύχεις, άλλαξε την ls σε cp:
cp /media/vag/serial_δισκου/2lapexa-*/Έγγραφα/*.odt /media/vag/serial_flash_disk/sxoleio_a/
Δίκιο έχεις .... είχα στο μυαλό μου κάτι πιο πολύπλοκο (with .. do ) κάτι με επανάληψη ... που δεν το πολυκατέχω γιαυτό το έβαλα εδώ ...
Ευχαριστώ
Παράθεση από: alkisg στις 09 Ιαν 2019, 06:41:30 ΜΜ
Παίξε με την εντολή ls μέχρι να σου δείξει αυτά που θες. Παράδειγμα:
ls /media/vag/serial_δισκου/2lapexa-*/Έγγραφα/*.odt
...
και πώς το βάζεις να ψάξει όλο το φάκελο του χρήστη (όχι μόνο το Έγγραφα);
και μετά να τα βάλει όλα μαζί σε ενα φάκελο στο φλασάκι;
Παράθεση από: 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
Υπάρχει περίπτωση με αυτό το σκριπτ να μπορέσω να κάνω και μετονομασία, προσθέτοντας ένα επίθεμα πχ 01,02... ανάλογα τον client και μετά να αντιγράψω τα αρχεία;