Πώς να δημιουργήσετε καταλόγους στο Linux με την εντολή "mkdir"

Αυτός ο οδηγός θα σας δείξει πώς μπορείτε να δημιουργήσετε νέους φακέλους ή καταλόγους στο Linux χρησιμοποιώντας τη γραμμή εντολών.

Η εντολή που χρησιμοποιείτε για τη δημιουργία καταλόγων είναι mkdir. Αυτό το άρθρο σάς δείχνει τον βασικό τρόπο δημιουργίας καταλόγων στο Linux καθώς και καλύπτοντας όλους τους διαθέσιμους διακόπτες.

Πώς να δημιουργήσετε έναν νέο κατάλογο

Ο πιο απλός τρόπος δημιουργίας ενός νέου καταλόγου είναι ο εξής:

mkdir <όνομα_φακέλου>

Για παράδειγμα, αν θέλετε να δημιουργήσετε έναν κατάλογο κάτω από τον αρχικό φάκελο που ονομάζεται δοκιμή, ανοίξτε ένα παράθυρο τερματικού και βεβαιωθείτε ότι βρίσκεστε στον αρχικό φάκελο (χρησιμοποιήστε την εντολή cd ~ ).

test mkdir

Αλλαγή των αδειών του νέου καταλόγου

Αφού δημιουργήσετε ένα νέο φάκελο, ίσως θελήσετε να ορίσετε τα δικαιώματα, έτσι ώστε μόνο ένας συγκεκριμένος χρήστης να έχει πρόσβαση στον φάκελο ή έτσι ώστε ορισμένα άτομα να μπορούν να επεξεργάζονται αρχεία στο φάκελο αλλά άλλα έχουν μόνο ανάγνωση.

Στην τελευταία ενότητα, σας έδειξα πώς να δημιουργήσετε έναν κατάλογο που ονομάζεται δοκιμή. Η εκτέλεση της εντολής ls θα σας δείξει τα δικαιώματα για αυτόν τον κατάλογο:

ls -lt

Οι πιθανότητες είναι ότι θα έχετε κάτι στο εξής:

drwxr-xr-x 2 ομάδα ιδιοκτητών 4096 9 Μαρτίου 19:34 δοκιμή

Τα bits που μας ενδιαφέρουν είναι drwxr-xr-x ιδιοκτήτης και ομάδα

Το d μας λέει ότι ο έλεγχος είναι ένας κατάλογος.

Οι τρεις πρώτοι χαρακτήρες μετά το d είναι τα δικαιώματα κατόχου για τον κατάλογο που καθορίζεται από το όνομα του κατόχου.

Οι επόμενοι τρεις χαρακτήρες είναι τα δικαιώματα ομάδας για το αρχείο που καθορίζεται από το όνομα της ομάδας. Και πάλι οι επιλογές είναι r, w και x. Το - σημαίνει ότι υπάρχει άδεια που λείπει. Στο παραπάνω παράδειγμα οποιοσδήποτε που ανήκει στην ομάδα μπορεί να έχει πρόσβαση στον φάκελο και να διαβάσει τα αρχεία αλλά δεν μπορεί να γράψει στον φάκελο.

Οι τελευταίοι τρεις χαρακτήρες είναι τα δικαιώματα που έχουν όλοι οι χρήστες και όπως μπορείτε να δείτε στο παραπάνω παράδειγμα, αυτά είναι τα ίδια με τα δικαιώματα ομάδας.

Για να αλλάξετε τα δικαιώματα για ένα αρχείο ή ένα φάκελο, μπορείτε να χρησιμοποιήσετε την εντολή chmod . Η εντολή chmod σας επιτρέπει να ορίσετε 3 αριθμούς που καθορίζουν τα δικαιώματα.

Για να λάβετε ένα μείγμα δικαιωμάτων, προσθέστε τους αριθμούς μαζί. Για παράδειγμα, για να λάβετε δικαιώματα ανάγνωσης και εκτέλεσης, ο αριθμός που χρειάζεστε είναι 5, για να λάβετε δικαιώματα ανάγνωσης και εγγραφής ο αριθμός είναι 6 και για να λάβετε δικαιώματα εγγραφής και εκτέλεσης ο αριθμός είναι 3.

Θυμηθείτε ότι πρέπει να ορίσετε 3 αριθμούς ως μέρος της εντολής chmod. Ο πρώτος αριθμός είναι για τα δικαιώματα κατόχου, ο δεύτερος αριθμός αφορά τα δικαιώματα ομάδας και ο τελευταίος αριθμός είναι για όλους τους άλλους.

Για παράδειγμα, για να λάβετε πλήρη δικαιώματα στον κάτοχο, να διαβάσετε και να εκτελέσετε δικαιώματα στην ομάδα και να μην υπάρχουν δικαιώματα για οποιονδήποτε άλλο, πληκτρολογήστε τα εξής:

δοκιμή chmod 750

Αν θέλετε να αλλάξετε το όνομα της ομάδας που κατέχει ένα φάκελο, χρησιμοποιήστε την εντολή chgrp.

Για παράδειγμα, φανταστείτε ότι θέλετε να δημιουργήσετε έναν κατάλογο ο οποίος να έχει πρόσβαση σε όλους τους λογιστές της εταιρείας σας.

Καταρχήν, δημιουργήστε τους λογαριασμούς ομάδας πληκτρολογώντας τα εξής:

λογαριασμούς groupadd

Εάν δεν έχετε τη σωστή άδεια για να δημιουργήσετε μια ομάδα, ίσως χρειαστεί να χρησιμοποιήσετε το sudo για να αποκτήσετε πρόσθετα προνόμια ή να μεταβείτε σε ένα λογαριασμό με έγκυρα δικαιώματα χρησιμοποιώντας την εντολή su .

Τώρα μπορείτε να αλλάξετε την ομάδα για ένα φάκελο πληκτρολογώντας τα εξής:

chgrp λογαριασμοί <όνομα_φακέλου>

Για παράδειγμα:

δοκιμή λογαριασμών chgrp

Για να δώσετε σε οποιονδήποτε στη ομάδα λογαριασμών την ανάγνωση, την εγγραφή και την εκτέλεση πρόσβασης καθώς και τον ιδιοκτήτη, αλλά μόνο για ανάγνωση σε όλους τους άλλους μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή:

chmod 770 test

Για να προσθέσετε έναν χρήστη στην ομάδα λογαριασμών, πιθανόν να θέλετε να χρησιμοποιήσετε την ακόλουθη εντολή:

usermod -α -G λογαριασμούς

Η παραπάνω εντολή προσαρτά την ομάδα λογαριασμών στη λίστα δευτερευουσών ομάδων στις οποίες έχει πρόσβαση ο χρήστης.

Πώς να δημιουργήσετε έναν κατάλογο και να ορίσετε δικαιώματα ταυτόχρονα

Μπορείτε να δημιουργήσετε έναν κατάλογο και να ορίσετε τις άδειες για αυτόν τον κατάλογο ταυτόχρονα χρησιμοποιώντας την ακόλουθη εντολή:

mkdir -m777 <όνομα_φακέλου>

Η παραπάνω εντολή θα δημιουργήσει ένα φάκελο στον οποίο όλοι έχουν πρόσβαση. Είναι πολύ σπάνιο ότι θα θέλατε να δημιουργήσετε κάτι με αυτό το είδος δικαιωμάτων.

Δημιουργήστε έναν φάκελο και όλους τους γονείς που απαιτούνται

Φανταστείτε ότι θέλετε να δημιουργήσετε μια δομή καταλόγου, αλλά δεν θέλετε να δημιουργήσετε κάθε μεμονωμένο φάκελο μαζί με τον τρόπο και να δουλέψετε σε ένα δέντρο.

Για παράδειγμα, ίσως δημιουργείτε φακέλους για τη μουσική σας ως εξής:

Θα ήταν ενοχλητικό να πρέπει να δημιουργήσετε το ροκ φάκελο, έπειτα το φάκελο alice cooper και queen και στη συνέχεια να δημιουργήσετε το φάκελο rap και το φάκελο dr dre και στη συνέχεια το φάκελο jazz και στη συνέχεια το φάκελο louisjordan.

Ορίζοντας τον ακόλουθο διακόπτη, μπορείτε να δημιουργήσετε όλους τους γονικούς φακέλους σε λειτουργία, αν δεν υπάρχουν ήδη.

mkdir -p <όνομα_φακέλου>

Για παράδειγμα, για να δημιουργήσετε έναν από τους φακέλους που αναφέρονται παραπάνω, δοκιμάστε την ακόλουθη εντολή:

mkdir -p ~ / μουσική / ροκ / alicecooper

Λήψη επιβεβαίωσης ότι δημιουργήθηκε ένας κατάλογος

Από προεπιλογή, η εντολή mkdir δεν σας λέει εάν ο κατάλογος που δημιουργείτε δημιουργήθηκε με επιτυχία. Αν δεν εμφανιστούν σφάλματα τότε μπορείτε να υποθέσετε ότι έχει.

Αν θέλετε να αποκτήσετε περισσότερη λεπτομερή έξοδο, ώστε να ξέρετε τι έχει δημιουργηθεί, χρησιμοποιήστε τον ακόλουθο διακόπτη.

mkdir -v <όνομα_φακέλου>

Η έξοδος θα είναι κατά μήκος των γραμμών του mkdir: δημιουργήθηκε κατάλογος / path / to / directoryname .

Χρησιμοποιώντας & # 34; mkdir & # 34; σε Shell Script

Μερικές φορές θα θέλετε να χρησιμοποιήσετε την εντολή "mkdir" ως μέρος ενός script shell. Για παράδειγμα, ας δούμε μια δέσμη ενεργειών που δέχεται μια διαδρομή. Όταν εκτελείται η δέσμη ενεργειών, θα δημιουργηθεί ο φάκελος και θα προστεθεί ένα αρχείο κειμένου που ονομάζεται "hello".

#! / bin / bash

mkdir $ @

cd $ @

αγγίξτε το γειά σου

Η πρώτη γραμμή θα πρέπει να περιλαμβάνεται σε κάθε σενάριο που γράφετε και χρησιμοποιείται για να δείξει ότι αυτό είναι πράγματι ένα script BASH.

Η εντολή "mkdir" χρησιμοποιείται για τη δημιουργία ενός φακέλου. Το "$ @" ( επίσης γνωστό ως παράμετρος εισόδου ) στο τέλος της 2ης και της 3ης γραμμής αντικαθίσταται με την τιμή που καθορίζετε κατά την εκτέλεση του σεναρίου.

Η εντολή "cd" αλλάζει στον κατάλογο που καθορίζετε και τέλος η εντολή touch δημιουργεί ένα κενό αρχείο που ονομάζεται "hello".

Μπορείτε να δοκιμάσετε το σενάριο για τον εαυτό σας. Για να το κάνετε αυτό ακολουθήστε αυτές τις οδηγίες:

  1. Ανοίξτε ένα παράθυρο τερματικού (πατήστε Alt και T πρέπει να το κάνετε)
  2. Εισαγάγετε nano createhellodirectory.sh
  3. Πληκτρολογήστε τις παραπάνω εντολές στον επεξεργαστή
  4. Αποθηκεύστε το αρχείο πιέζοντας ταυτόχρονα CTRL και O
  5. Έξοδος από το αρχείο πιέζοντας ταυτόχρονα CTRL και X
  6. Αλλάξτε τα δικαιώματα πληκτρολογώντας το chmod + x createhellodirectory.sh
  7. Εκτελέστε το σενάριο πληκτρολογώντας ./createhellodirectory.sh test

Όταν εκτελείτε τη δέσμη ενεργειών θα δημιουργηθεί ένας κατάλογος που ονομάζεται "test" και αν αλλάξετε σε αυτόν τον κατάλογο ( test cd) και εκτελέσετε μια λίστα καταλόγου ( ls), θα δείτε ένα μόνο αρχείο που ονομάζεται "hello".

Μέχρι στιγμής τόσο καλά, αλλά τώρα προσπαθήστε να εκτελέσετε το βήμα 7 ξανά.

  1. Εμφανίζεται ένα σφάλμα που δηλώνει ότι ο φάκελος υπάρχει ήδη.

Υπάρχουν διάφορα πράγματα που μπορούμε να κάνουμε για να βελτιώσουμε το σενάριο. Για παράδειγμα, αν ο φάκελος υπάρχει ήδη δεν μας ενδιαφέρει ιδιαίτερα όσο υπάρχει.

#! / bin / bash

mkdir -p $ @

cd $ @

αγγίξτε το γειά σου

Εάν καθορίσετε το -p ως μέρος της εντολής mkdir τότε δεν θα σφάλει εάν ο φάκελος υπάρχει ήδη αλλά αν δεν υπάρχει θα το δημιουργήσει.

Όπως συμβαίνει, η εντολή αφής θα δημιουργήσει ένα αρχείο εάν δεν υπάρχει, αλλά αν υπάρχει, αλλάζει απλώς την τελευταία ημερομηνία και ώρα πρόσβασης.

Φανταστείτε ότι η εντολή αφής αντικαταστάθηκε με μια εντολή ηχώ που γράφει κείμενο σε ένα αρχείο ως εξής:

#! / bin / bash

mkdir -p $ @

cd $ @

echo "hello" >> γεια

Εάν εκτελέσετε την εντολή "./createhellodirectory.sh test" ξανά και ξανά, το αποτέλεσμα θα είναι ότι το αρχείο που καλείται "hello" στον κατάλογο δοκιμών θα μεγαλώσει και θα μεγαλώσει με όλο και περισσότερες γραμμές με τη λέξη "hello" σε αυτό.

Τώρα, αυτό μπορεί ή δεν μπορεί να είναι το ίδιο, αλλά ας πούμε για τώρα ότι αυτό δεν είναι η επιθυμητή δράση. Μπορείτε να γράψετε μια δοκιμή για να βεβαιωθείτε ότι ο κατάλογος δεν υπάρχει πριν εκτελέσετε την εντολή echo ως εξής.

#! / bin / bash

mkdir $ @ 2> / dev / null;

αν [$? -eq 0]. έπειτα

cd $ @

echo "hello" >> γεια

έξοδος

fi

Το παραπάνω σενάριο είναι η προτιμώμενη μέθοδος μου για το χειρισμό της δημιουργίας φακέλων. Η εντολή mkdir δημιουργεί το φάκελο που μεταβιβάζεται ως παράμετρος εισόδου αλλά κάθε έξοδος σφάλματος αποστέλλεται στο / dev / null (που ουσιαστικά δεν σημαίνει πουθενά).

Η τρίτη γραμμή ελέγχει την κατάσταση εξόδου της προηγούμενης εντολής που είναι η εντολή "mkdir" και αν πέτυχε, θα εκτελέσει τις δηλώσεις μέχρι να φτάσει η εντολή "fi".

Αυτό σημαίνει ότι μπορείτε να δημιουργήσετε το φάκελο και να εκτελέσετε όλα τα πράγματα που θέλετε αν η εντολή είναι επιτυχής. Εάν θέλετε να κάνετε κάτι άλλο εάν η εντολή δεν ήταν επιτυχής τότε μπορείτε απλά να εισαγάγετε μια άλλη δήλωση ως εξής:

#! / bin / bash

mkdir $ @ 2> / dev / null;

αν [$? -eq 0]. έπειτα
cd $ @
echo "hello" >> γεια
έξοδος
αλλού
cd $ @
echo "hello"> γεια
έξοδος
fi

Στην παραπάνω δέσμη ενεργειών, αν η εντολή mkdir λειτουργεί τότε η εντολή echo στέλνει τη λέξη "hello" στο τέλος του αρχείου που λέγεται "hello" ενώ αν δεν υπάρχει ένα νέο αρχείο θα δημιουργηθεί με το όνομα "hello" με τη λέξη " γεια "σε αυτό.

Αυτό το παράδειγμα δεν είναι ιδιαίτερα πρακτικό επειδή θα μπορούσατε να επιτύχετε τα ίδια αποτελέσματα απλά με το να εκτελείτε πάντα την ηχώ "hello"> hello line . Το σημείο του παραδείγματος είναι να δείξετε ότι μπορείτε να εκτελέσετε την εντολή mkdir, να αποκρύψετε την έξοδο σφάλματος, να ελέγξετε την κατάσταση της εντολής για να δείτε εάν ήταν επιτυχής ή όχι και στη συνέχεια να εκτελέσετε ένα σύνολο εντολών εάν η εντολή "mkdir" ήταν επιτυχής και ένα άλλο σύνολο εντολών αν δεν ήταν.