Αναδρομική δημιουργία μιας δομής ένθετου καταλόγου & Όλοι οι υποφάκελοι με μια ενιαία εντολή

Anonim

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

Η δημιουργία μιας δομής ένθετου καταλόγου με τον εύκολο τρόπο απαιτεί τη χρήση της γνώριμης εντολής mkdir, η οποία χρησιμοποιείται συνήθως για τη δημιουργία ενός νέου φακέλου, αλλά με την επισύναψη της σημαίας -p για τον καθορισμό μιας πλήρους διαδρομής για να δημιουργήσω. Εάν θέλετε να το δοκιμάσετε μόνοι σας, ξεκινήστε την εφαρμογή Terminal όπως βρίσκεται στο φάκελο /Applications/Utilities/ και ακολουθήστε για να δείτε πώς μπορείτε να χρησιμοποιήσετε το mkdir -p για να δημιουργήσετε μια σειρά από καταλόγους σε μια γραμμή εντολών χρησιμοποιώντας μια καθορισμένη διαδρομή.

Δημιουργία μιας δομής καταλόγου αναδρομικά καθορίζοντας μια διαδρομή

Στην πιο απλή μορφή, μπορείτε απλώς να καθορίσετε τη διαδρομή όπως έτσι στο mkdir:

mkdir -p /path/to/make/

Η σημαία -p διασφαλίζει ότι όλοι οι υποφάκελοι γίνονται αναδρομικά και στην κατάλληλη θέση.

Για παράδειγμα, ας υποθέσουμε ότι η ένθετη διαδρομή καταλόγου που θέλουμε να δημιουργήσουμε είναι "/Create/These/Folders/Within/Each/Other/" και κανένας από αυτούς τους φακέλους ή υποφακέλους δεν υπάρχει αυτήν τη στιγμή. Για να τα φτιάξετε όλα αμέσως, απλώς χρησιμοποιήστε την ακόλουθη συμβολοσειρά εντολών:

mkdir -p ~/Create/These/Folders/Within/Each/Other/

Αυτό θα κάνει τον φάκελο "Δημιουργία" ως τον γονικό κατάλογο ακολουθούμενο από την πλήρη σειρά "/These/Folders/Within/Each/Other/" ως κατάλληλα ένθετους θυγατρικούς καταλόγους.

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

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

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

find (γονικός κατάλογος) -type d -print

Χρησιμοποιώντας ξανά το παραπάνω παράδειγμα, η εντολή find θα ήταν έτσι:

find ~/Create/ -type d -print

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

$ εύρεση ~/Create -type d -print /Create /Create/These /Create/These/Folders /Create/These/Folders/Within /Create/These /Φάκελοι/Μέσα/Κάθε /Δημιουργία/Αυτοί/Φάκελοι/Μέσα/Κάθε/Άλλα

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

(Σημειώστε ότι τα αρχεία .DS_Store εμφανίζονται επειδή όλα τα κρυφά αρχεία είναι ορατά)

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

Και ναι, η χρήση του Terminal είναι μακράν ο πιο γρήγορος τρόπος για να επιτευχθεί αυτό, καθώς δεν υπάρχει παρόμοιο κόλπο ειδικά για το Mac Finder, αν και θεωρητικά θα μπορούσε κανείς να αυτοματοποιήσει τη δημιουργία ένθετων καταλόγων μέσω της εφαρμογής Automator στο λειτουργικό σύστημα Χ αν το επιθυμείτε. Για ό,τι αξίζει, η εντολή mkdir λειτουργεί το ίδιο τόσο σε Mac OS X όσο και σε Linux, ώστε να μπορείτε να τη χρησιμοποιήσετε σε όλες τις πλατφόρμες εάν θέλετε. Θέλετε περισσότερα κόλπα στη γραμμή εντολών; Σας καλύψαμε.

Αναδρομική δημιουργία μιας δομής ένθετου καταλόγου & Όλοι οι υποφάκελοι με μια ενιαία εντολή