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

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

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

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

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

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

Καλησπέρα, Γνωρίζει κανείς αν μπορώ να χρησιμοποιήσω κάποια εντολή για να δημιουργήσω ταυτόχρονα πολλά directories τα οποία θα περιέχουν μέσα ένα συγκεκριμένο file;
Ρωτάω επειδή είναι πολύ βαρετή δουλειά για να το κάνει κανείς ένα ένα!
Ευχαριστώ!
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Πρώτα βήματα ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 22.04 Jammy Jellyfish 5.15.0-76-generic 64bit (el_GR.UTF-8, ubuntu:GNOME ubuntu), Ubuntu 5.15.0-75-generic, Windows Boot Manager
3 Intel Core i3-9100 CPU @ 3.60GHz ‖ RAM 7760 MiB ‖ HP 843B - HP HP Pavilion Desktop 590-p0xxx
4 Intel CoffeeLake-S GT2 [UHD Graphics 630] [8086:3e91] {i915}
5 enp2s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15) ⋮ wlp1s0: Realtek RTL8821CE 802.11ac PCIe Wireless Network Adapter [10ec:c821]
nikos_N
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 523
Εγγραφή: 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
 
Δημοσιεύσεις: 2598
Εγγραφή: 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 22.04 Jammy Jellyfish 5.15.0-76-generic 64bit (el_GR.UTF-8, ubuntu:GNOME ubuntu), Ubuntu 5.15.0-75-generic, Windows Boot Manager
3 Intel Core i3-9100 CPU @ 3.60GHz ‖ RAM 7760 MiB ‖ HP 843B - HP HP Pavilion Desktop 590-p0xxx
4 Intel CoffeeLake-S GT2 [UHD Graphics 630] [8086:3e91] {i915}
5 enp2s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15) ⋮ wlp1s0: Realtek RTL8821CE 802.11ac PCIe Wireless Network Adapter [10ec:c821]
nikos_N
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 523
Εγγραφή: 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
 
Δημοσιεύσεις: 184
Εγγραφή: 18 Ιαν 2010, 15:13
Τοποθεσία: Λάρισα
Εκτύπωση

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

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

Δεν ξέρω πως ακριβώς τρέχουν τα scripts. Μπορείς να με βοηθήσεις λίγο; Απ'ότι καταλαβαίνω αυτό είναι που χρειάζομαι.
(Ερώτηση το σκριπτ αυτο δημιουργεί κατευθείαν τους φακέλους με το αρχείο ή πρέπει ξεχωριστά να κάνω τους φακέλους και ξεχωριστά να τοποθετηθεί το αρχείο;)
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Πρώτα βήματα ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 22.04 Jammy Jellyfish 5.15.0-76-generic 64bit (el_GR.UTF-8, ubuntu:GNOME ubuntu), Ubuntu 5.15.0-75-generic, Windows Boot Manager
3 Intel Core i3-9100 CPU @ 3.60GHz ‖ RAM 7760 MiB ‖ HP 843B - HP HP Pavilion Desktop 590-p0xxx
4 Intel CoffeeLake-S GT2 [UHD Graphics 630] [8086:3e91] {i915}
5 enp2s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15) ⋮ wlp1s0: Realtek RTL8821CE 802.11ac PCIe Wireless Network Adapter [10ec:c821]
nikos_N
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 523
Εγγραφή: 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
 
Δημοσιεύσεις: 184
Εγγραφή: 18 Ιαν 2010, 15:13
Τοποθεσία: Λάρισα
Εκτύπωση

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

OK Ευχαριστώ. Μπορείς να μου δώσεις λίγο και τα στοιχεία των παραμέτρων του σκριπτ και τι πρέπει να αντικαταστήσω; πχ το {1..4} είναι ο αριθμός των φακέλων που θέλω να φτιάξω; Το "i" τι ακριβως είναι; Επίσης το αρχείο που θέλω να περιέχουν οι φάκελοι πρέπει να είναι στον ίδιο φάκελο με το σκριπτ;
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Πρώτα βήματα ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 22.04 Jammy Jellyfish 5.15.0-76-generic 64bit (el_GR.UTF-8, ubuntu:GNOME ubuntu), Ubuntu 5.15.0-75-generic, Windows Boot Manager
3 Intel Core i3-9100 CPU @ 3.60GHz ‖ RAM 7760 MiB ‖ HP 843B - HP HP Pavilion Desktop 590-p0xxx
4 Intel CoffeeLake-S GT2 [UHD Graphics 630] [8086:3e91] {i915}
5 enp2s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15) ⋮ wlp1s0: Realtek RTL8821CE 802.11ac PCIe Wireless Network Adapter [10ec:c821]
nikos_N
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 523
Εγγραφή: 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
 
Δημοσιεύσεις: 184
Εγγραφή: 18 Ιαν 2010, 15:13
Τοποθεσία: Λάρισα
Εκτύπωση

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

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

kosmos890 έγραψε: Τα dir είναι φάκελοι, τα file αρχεία κειμένου.
ΟΚ κατάλαβα αλλά δεν θέλω να δημιουργηθεί ενα "file" μέσα σε κάθε φάκελο. Θέλω να τοποθετηθεί ένα συγκεκριμένο προϋπάρχον αρχείο (συγκεκριμένα ένα html που έχω φτιάξει) μέσα σε κάθε φάκελο. Μπορούμε να το ορίσουμε αυτό με το script;
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Πρώτα βήματα ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 22.04 Jammy Jellyfish 5.15.0-76-generic 64bit (el_GR.UTF-8, ubuntu:GNOME ubuntu), Ubuntu 5.15.0-75-generic, Windows Boot Manager
3 Intel Core i3-9100 CPU @ 3.60GHz ‖ RAM 7760 MiB ‖ HP 843B - HP HP Pavilion Desktop 590-p0xxx
4 Intel CoffeeLake-S GT2 [UHD Graphics 630] [8086:3e91] {i915}
5 enp2s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15) ⋮ wlp1s0: Realtek RTL8821CE 802.11ac PCIe Wireless Network Adapter [10ec:c821]
nikos_N
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 523
Εγγραφή: 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
 
Δημοσιεύσεις: 184
Εγγραφή: 18 Ιαν 2010, 15:13
Τοποθεσία: Λάρισα
Εκτύπωση

Επόμενο

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