Εντολή για δημιουργία directory  Το θέμα επιλύθηκε

...εγκαταστάσεις, αναβαθμίσεις, διαχείριση partitions, boot-loader, κλπ

Συντονιστής: adem1

Κανόνες Δ. Συζήτησης
Στην ενότητα αυτή γράφουμε θέματα/ προβλήματα μόνο για το UBUNTU ή τα παράγωγά του.

Εντολή για δημιουργία directory

Δημοσίευσηαπό nikos_N » 05 Ιούλ 2018, 00:04

Καλησπέρα, Γνωρίζει κανείς αν μπορώ να χρησιμοποιήσω κάποια εντολή για να δημιουργήσω ταυτόχρονα πολλά directories τα οποία θα περιέχουν μέσα ένα συγκεκριμένο file;
Ρωτάω επειδή είναι πολύ βαρετή δουλειά για να το κάνει κανείς ένα ένα!
Ευχαριστώ!
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Καθόλου ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 16.04 xenial 4.4.0-34-generic 32bit (el_GR.UTF-8, Unity ubuntu), Windows 7
3 Pentium Dual-Core CPU E5200 2.50GHz ‖ RAM 4040 MiB ‖ Gigabyte G31M-S2L
4 nVidia G96 [GeForce 9500 GT] [10de:0640] {nvidia}
5 wlxe84e061e3dc7: 0bda:8172 Realtek RTL8191SU 802.11n WLAN Adapter ⋮ enp3s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 02)
nikos_N
punkTUX
punkTUX
 
Δημοσιεύσεις: 275
Εγγραφή: 04 Ιούλ 2012, 21:00
Εκτύπωση

Re: Εντολή για δημιουργία directory

Δημοσίευσηαπό pc_magas » 05 Ιούλ 2018, 17:13

Θες να δημιουργήσεις ένα πλήρες path πχ myfolder/folder1/folder2/folder3 ή έχεις έναν φάκελο και θες μονομιάς να τον γεμίσεις με 500 φακέλους χωρίς το όνομα να έχει κάποιο pattern;
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2585
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση

Re: Εντολή για δημιουργία directory

Δημοσίευσηαπό nikos_N » 06 Ιούλ 2018, 15:31

pc_magas έγραψε:ή έχεις έναν φάκελο και θες μονομιάς να τον γεμίσεις με 500 φακέλους χωρίς το όνομα να έχει κάποιο pattern;

Αυτό αλλά αν είναι δυνατόν ο κάθε folder να εμπεριέχει μέσα και ένα συγκεκριμένο αρχείο (το ίδιο για όλους τους folders).
Αν δεν γίνεται εξαρχής με μία εντολή αυτό θα μπορούσα να δημιουργήσω πρώτα τα folders και μετά να τοποθετήσω το αρχείο ίσως; Πως είναι πιο εύκολο;
(ο κάθε φάκελος θα πρέπει να έχει μια ονομασία πχ φακελος1/φακελος2 κλπ)
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Καθόλου ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 16.04 xenial 4.4.0-34-generic 32bit (el_GR.UTF-8, Unity ubuntu), Windows 7
3 Pentium Dual-Core CPU E5200 2.50GHz ‖ RAM 4040 MiB ‖ Gigabyte G31M-S2L
4 nVidia G96 [GeForce 9500 GT] [10de:0640] {nvidia}
5 wlxe84e061e3dc7: 0bda:8172 Realtek RTL8191SU 802.11n WLAN Adapter ⋮ enp3s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 02)
nikos_N
punkTUX
punkTUX
 
Δημοσιεύσεις: 275
Εγγραφή: 04 Ιούλ 2012, 21:00
Εκτύπωση

Re: Εντολή για δημιουργία directory

Δημοσίευσηαπό kosmos890 » 06 Ιούλ 2018, 20:52

Μπορείς να τρέξεις ενα script, για παραδειγμα
Κώδικας: Επιλογή όλων
#!/bin/bash

for i in {1..4}
do
mkdir "dir$i"
cd "dir$i"
touch "file$i"
cd ..
done

Το script δημιουργεί τα παρακάτω αρχεία
Κώδικας: Επιλογή όλων
.
├── dir1
│   └── file1
├── dir2
│   └── file2
├── dir3
│   └── file3
├── dir4
│   └── file4
└── script.sh
kosmos890
punkTUX
punkTUX
 
Δημοσιεύσεις: 172
Εγγραφή: 18 Ιαν 2010, 15:13
Τοποθεσία: Λάρισα
Εκτύπωση

Re: Εντολή για δημιουργία directory

Δημοσίευσηαπό nikos_N » 06 Ιούλ 2018, 22:37

Δεν ξέρω πως ακριβώς τρέχουν τα scripts. Μπορείς να με βοηθήσεις λίγο; Απ'ότι καταλαβαίνω αυτό είναι που χρειάζομαι.
(Ερώτηση το σκριπτ αυτο δημιουργεί κατευθείαν τους φακέλους με το αρχείο ή πρέπει ξεχωριστά να κάνω τους φακέλους και ξεχωριστά να τοποθετηθεί το αρχείο;)
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Καθόλου ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 16.04 xenial 4.4.0-34-generic 32bit (el_GR.UTF-8, Unity ubuntu), Windows 7
3 Pentium Dual-Core CPU E5200 2.50GHz ‖ RAM 4040 MiB ‖ Gigabyte G31M-S2L
4 nVidia G96 [GeForce 9500 GT] [10de:0640] {nvidia}
5 wlxe84e061e3dc7: 0bda:8172 Realtek RTL8191SU 802.11n WLAN Adapter ⋮ enp3s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 02)
nikos_N
punkTUX
punkTUX
 
Δημοσιεύσεις: 275
Εγγραφή: 04 Ιούλ 2012, 21:00
Εκτύπωση

Re: Εντολή για δημιουργία directory

Δημοσίευσηαπό kosmos890 » 06 Ιούλ 2018, 23:05

Με το gedit δημιουργησε το αρχείο myscript.sh και αποθήκευσε τον κώδικα που σου έδωσα.
Κάνε το αρχείο myscript.sh εκτελέσιμο. Αυτο μπορείς να το κάνεις είτε με δεξί κλικ επάνω στο αρχείο είτε απο την γραμμή εντολών.
Στην γραμμή εντολών, πηγαίνεις στον φάκελλο όπου βρίσκεται το αρχείο myscript.sh και δίνεις
Κώδικας: Επιλογή όλων
chmod  777 myscript.sh

Για να τρέξεις το myscript.sh
Κώδικας: Επιλογή όλων
./myscript.sh
Γνώσεις ⇛ Linux: Xαμηλό ┃ Προγραμματισμός: Ναι┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 10.04.1 LTS
Προδιαγραφές ⇛ Pentium 4 2.66Hz│512 MB│GeForce FX 5200 │ ZTE MF636 │ TFT 19"
kosmos890
punkTUX
punkTUX
 
Δημοσιεύσεις: 172
Εγγραφή: 18 Ιαν 2010, 15:13
Τοποθεσία: Λάρισα
Εκτύπωση

Δημοσίευσηαπό nikos_N » 07 Ιούλ 2018, 00:26

OK Ευχαριστώ. Μπορείς να μου δώσεις λίγο και τα στοιχεία των παραμέτρων του σκριπτ και τι πρέπει να αντικαταστήσω; πχ το {1..4} είναι ο αριθμός των φακέλων που θέλω να φτιάξω; Το "i" τι ακριβως είναι; Επίσης το αρχείο που θέλω να περιέχουν οι φάκελοι πρέπει να είναι στον ίδιο φάκελο με το σκριπτ;
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Καθόλου ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 16.04 xenial 4.4.0-34-generic 32bit (el_GR.UTF-8, Unity ubuntu), Windows 7
3 Pentium Dual-Core CPU E5200 2.50GHz ‖ RAM 4040 MiB ‖ Gigabyte G31M-S2L
4 nVidia G96 [GeForce 9500 GT] [10de:0640] {nvidia}
5 wlxe84e061e3dc7: 0bda:8172 Realtek RTL8191SU 802.11n WLAN Adapter ⋮ enp3s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 02)
nikos_N
punkTUX
punkTUX
 
Δημοσιεύσεις: 275
Εγγραφή: 04 Ιούλ 2012, 21:00
Εκτύπωση

Re: Εντολή για δημιουργία directory

Δημοσίευσηαπό kosmos890 » 07 Ιούλ 2018, 09:40

Το "i" τι ακριβως είναι;

Το i δεν χρειαζεται να το πειράξεις, είναι μια μεταβλητή για να τρέξει το loop. Το block εντολων μέσα στο loop θα εκτελεστεί για 4 φορές
Επίσης το αρχείο που θέλω να περιέχουν οι φάκελοι πρέπει να είναι στον ίδιο φάκελο με το σκριπτ;

Δες ξανά το δέντρο με τους φακέλους και τα αρχεία στο προηγούμενο post μου. Τα dir είναι φάκελοι, τα file αρχεία κειμένου.
Αρχικά έχεις το αρχείο myscript.sh
Μετά την εκτέλεση του script θα έχεις τα myscript.sh dir1 dir2 dir3 dir4.
Το dir1 θα περιέχει το file1, το dir2 το file2 κτλ.
kosmos890
punkTUX
punkTUX
 
Δημοσιεύσεις: 172
Εγγραφή: 18 Ιαν 2010, 15:13
Τοποθεσία: Λάρισα
Εκτύπωση

Re: Εντολή για δημιουργία directory

Δημοσίευσηαπό nikos_N » 07 Ιούλ 2018, 13:46

kosmos890 έγραψε: Τα dir είναι φάκελοι, τα file αρχεία κειμένου.
ΟΚ κατάλαβα αλλά δεν θέλω να δημιουργηθεί ενα "file" μέσα σε κάθε φάκελο. Θέλω να τοποθετηθεί ένα συγκεκριμένο προϋπάρχον αρχείο (συγκεκριμένα ένα html που έχω φτιάξει) μέσα σε κάθε φάκελο. Μπορούμε να το ορίσουμε αυτό με το script;
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Καθόλου ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 16.04 xenial 4.4.0-34-generic 32bit (el_GR.UTF-8, Unity ubuntu), Windows 7
3 Pentium Dual-Core CPU E5200 2.50GHz ‖ RAM 4040 MiB ‖ Gigabyte G31M-S2L
4 nVidia G96 [GeForce 9500 GT] [10de:0640] {nvidia}
5 wlxe84e061e3dc7: 0bda:8172 Realtek RTL8191SU 802.11n WLAN Adapter ⋮ enp3s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 02)
nikos_N
punkTUX
punkTUX
 
Δημοσιεύσεις: 275
Εγγραφή: 04 Ιούλ 2012, 21:00
Εκτύπωση

Re: Εντολή για δημιουργία directory  Το θέμα επιλύθηκε

Δημοσίευσηαπό kosmos890 » 07 Ιούλ 2018, 18:57

Το script.sh και file.html είναι στον ιδιο φάκελο.
Κώδικας: Επιλογή όλων
#!/bin/bash

for i in {1..4}
do
mkdir "dir$i"
cp file.html "dir$i"
done
kosmos890
punkTUX
punkTUX
 
Δημοσιεύσεις: 172
Εγγραφή: 18 Ιαν 2010, 15:13
Τοποθεσία: Λάρισα
Εκτύπωση

Επόμενο

  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Λειτουργικό Σύστημα