Τρόπος χρήσης της εντολής ls για τη λίστα αρχείων και καταλόγων στο Linux

Χρησιμοποιούμε την εντολή Linux ls κάθε μέρα χωρίς να το σκεφτόμαστε. Είναι κρίμα. Δώστε του λίγη προσοχή και θα βρείτε πολλές χρήσιμες επιλογές—συμπεριλαμβανομένων μερικών που θα πρέπει να προσθέσετε στο οπλοστάσιό σας στη γραμμή εντολών.

ls Παραθέτει αρχεία και καταλόγους

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

Η εντολή ls είναι μία από αυτές τις εντολές με πολλές επιλογές. Ίσως αυτό είναι μέρος του προβλήματος. Υπάρχουν τόσες πολλές επιλογές, πώς τις κοσκινίζεις για να βρεις τις χρήσιμες; Και αφού τα βρήκατε, πώς τα θυμάστε;

Χρήσιμες μεταθέσεις της εντολής ls με τις σειρές επιλογών και παραμέτρων είναι οι τέλειοι υποψήφιοι για ψευδώνυμα. Στην πραγματικότητα, στις περισσότερες διανομές, αυτό που νομίζετε ως η εντολή “γυμνό” ls είναι στην πραγματικότητα ένα ψευδώνυμο. Μεταξύ άλλων, μπορεί να χρησιμοποιηθεί η εντολή type δείχνουν τον υποκείμενο ορισμό των ψευδωνύμων. Ας δούμε τον ορισμό του ls:

τύπου ls

Οι παράμετροι –color=auto περιλαμβάνονται αυτόματα κάθε φορά που χρησιμοποιείτε την εντολή ls. Αυτό είναι που παρέχει τα διαφορετικά χρώματα για τους διαφορετικούς τύπους αρχείων στις καταχωρίσεις.

Απλές λίστες

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

ls

Εάν θέλετε να δημιουργήσετε την καταχώρισή σας σε μία στήλη, χρησιμοποιήστε την επιλογή -1 (ένα αρχείο ανά γραμμή):

ls -1

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

Χρήση ls σε διαφορετικούς καταλόγους

Για να έχει το ls να παραθέτει τα αρχεία σε έναν κατάλογο διαφορετικό από τον τρέχοντα κατάλογο, περάστε τη διαδρομή προς τον κατάλογο στο ls στη γραμμή εντολών. Μπορείτε επίσης να περάσετε περισσότερους από έναν καταλόγους στο ls και να τους βάλετε στη λίστα ο ένας μετά τον άλλο. Εδώ, ζητάμε από το ls να παραθέσει τα αρχεία σε δύο καταλόγους, ο ένας ονομάζεται “Help” και ο άλλος με το όνομα “gc_help”.

ls Help gc_help

Όταν το ls έχει παραθέσει τα περιεχόμενα του πρώτου καταλόγου, παραθέτει τα περιεχόμενα του δεύτερου καταλόγου. Εκτυπώνει το όνομα κάθε καταλόγου καθώς τον επεξεργάζεται:

Χρήση μοτίβων αρχείων

Για να παραθέσετε επιλεκτικά ένα σύνολο αρχείων, χρησιμοποιήστε την αντιστοίχιση μοτίβων. Το ερωτηματικό “;” θα αντιπροσωπεύει οποιονδήποτε μεμονωμένο χαρακτήρα και ο αστερίσκος “*” θα αντιπροσωπεύει οποιαδήποτε συμβολοσειρά χαρακτήρων. Για να παραθέσετε αρχεία ή καταλόγους που έχουν ονόματα που ξεκινούν με “ip_” χρησιμοποιήστε αυτήν τη μορφή:

ls ip_*

Για να παραθέσετε αρχεία που έχουν επεκτάσεις “.c”, χρησιμοποιήστε αυτήν τη μορφή:

ls *.c

Μπορείτε επίσης να χρησιμοποιήσετε ls με grep και να χρησιμοποιήσετε grep’s δυνατότητες αντιστοίχισης προτύπων. Ας αναζητήσουμε τυχόν αρχεία που έχουν τη συμβολοσειρά “_pin_” στο όνομά τους:

ls | grep _pin_

Αυτό είναι σχεδόν το ίδιο με τη χρήση του ls από μόνο του, με δύο χαρακτήρες μπαλαντέρ:

ls | grep _pin_
ls *_pin_*

Γιατί σχεδόν το ίδιο; Σημειώστε τις διαφορετικές διατάξεις. Το grep αναγκάζει την έξοδο σε ένα μόνο όνομα αρχείου ανά μορφή γραμμής.

  Πώς να χρησιμοποιήσετε την εντολή τοίχου στο Linux

Μη εκτυπωτικοί χαρακτήρες

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

Το περίεργο αρχείο μας είναι ένα από αυτά:

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

Μπορείτε να χρησιμοποιήσετε την επιλογή -b (escape) για να σας επιτρέψει να δείτε τι πραγματικά περιέχει το όνομα του αρχείου. Αυτή η επιλογή αναγκάζει το ls να χρησιμοποιήσει τις ακολουθίες διαφυγής του Γλώσσα προγραμματισμού C για να αναπαραστήσουν τους χαρακτήρες ελέγχου.

ls -b a*

Ο μυστηριώδης χαρακτήρας αποκαλύπτεται ότι είναι ένας χαρακτήρας νέας γραμμής, που αντιπροσωπεύεται στο C ως “n”.

Παράβλεψη αρχείων

Για να παραληφθούν ορισμένα αρχεία από μια λίστα, χρησιμοποιήστε την επιλογή –απόκρυψη. Ας υποθέσουμε ότι δεν θέλετε να δείτε τα αρχεία αντιγράφου ασφαλείας “.bak” στην καταχώριση. Θα μπορούσατε να χρησιμοποιήσετε αυτήν την εντολή:

ls
ls --hide=*.bak

Τα αρχεία “.bak” δεν περιλαμβάνονται στη δεύτερη λίστα.

Η καταχώριση μεγάλης μορφής

Η επιλογή -l (μεγάλη λίστα) αναγκάζει το ls να παρέχει λεπτομερείς πληροφορίες για κάθε αρχείο.

ls -l

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

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

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

Ο πρώτος χαρακτήρας αντιπροσωπεύει τον τύπο αρχείου. Θα είναι ένα από:

–: Ένα κανονικό αρχείο.
β: Ένα ειδικό αρχείο μπλοκ.
γ: Ένα ειδικό αρχείο χαρακτήρων.
δ: Ένας κατάλογος.
λ: Ένας συμβολικός σύνδεσμος.
n: Ένα αρχείο δικτύου.
p: Ένας επώνυμος σωλήνας.
s: Μια πρίζα.

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

  Πώς να παίξετε το Project CARS 2 στο Linux

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

Μερικές φορές η άδεια εκτέλεσης για τον ιδιοκτήτη αντιπροσωπεύεται από ένα s. Αυτό είναι το setuid κομμάτι. Εάν υπάρχει, σημαίνει ότι το αρχείο εκτελείται με τα δικαιώματα του κατόχου του αρχείου και όχι του χρήστη που εκτελεί το αρχείο.

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

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

Μια κοινή χρήση για το sticky bit είναι σε φακέλους όπως “/tmp”. Αυτό μπορεί να εγγραφεί από όλους τους χρήστες στον υπολογιστή. Το sticky bit στον κατάλογο διασφαλίζει ότι οι χρήστες —και οι διαδικασίες που ξεκινούν από τους χρήστες— μπορούν μόνο να μετονομάσουν ή να διαγράψουν τα δικά τους προσωρινά αρχεία.

Μπορούμε να δούμε το sticky bit στον κατάλογο “/tmp”. Σημειώστε τη χρήση της επιλογής -d (κατάλογος). Αυτό προκαλεί το ls να αναφέρει τις λεπτομέρειες του καταλόγου. Χωρίς αυτήν την επιλογή, το ls θα αναφέρει τα αρχεία μέσα στον κατάλογο.

ls -l -d /tmp

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

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

Μεγέθη αρχείων αναγνώσιμα από τον άνθρωπο

Το να έχετε τα μεγέθη αρχείων σε byte δεν είναι πάντα βολικό. Για να δείτε τα μεγέθη των αρχείων στις πιο κατάλληλες μονάδες (Kilobytes, Megabytes, κ.λπ.) χρησιμοποιήστε την επιλογή -h (αναγνώσιμο από τον άνθρωπο):

ls -l -h

Εμφάνιση κρυφών αρχείων

Για να δείτε κρυφά αρχεία, χρησιμοποιήστε την επιλογή -a (όλα):

ls -l -a

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

Παράλειψη . και .. από Καταχωρήσεις

Εάν δεν θέλετε η καταχώρισή σας να είναι γεμάτη με το “.” και καταχωρήσεις “..”, αλλά θέλετε να δείτε κρυφά αρχεία, χρησιμοποιήστε την επιλογή -A (σχεδόν όλα):

ls -l -A

Το κρυφό αρχείο εξακολουθεί να εμφανίζεται, αλλά το “.” και οι καταχωρήσεις “..” αποκρύπτονται.

  Πώς να φιλοξενήσετε μια προσωπική εναλλακτική λύση Pastebin στο Linux

Καταχώριση καταλόγων αναδρομικά

Για να καταχωρίσετε τα αρχεία σε όλους τους υποκαταλόγους, χρησιμοποιήστε την επιλογή -R (αναδρομική).

ls -l -R

Το ls λειτουργεί μέσα από ολόκληρο το δέντρο καταλόγου κάτω από τον αρχικό κατάλογο και παραθέτει τα αρχεία σε κάθε υποκατάλογο.

Εμφάνιση του UID και του GID

Για να εμφανίζεται το αναγνωριστικό χρήστη και το αναγνωριστικό ομάδας αντί για το όνομα χρήστη και το όνομα ομάδας, χρησιμοποιήστε την επιλογή -n (αριθμητικό uid και gid).

ls -n

Ταξινόμηση των καταχωρίσεων

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

Για ταξινόμηση κατά επέκταση, χρησιμοποιήστε την επιλογή -X (ταξινόμηση κατά επέκταση).

ls -X -1

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

Για ταξινόμηση κατά μέγεθος αρχείου, χρησιμοποιήστε την επιλογή -S (ταξινόμηση κατά μέγεθος αρχείου).

ls -l -h -S

Η σειρά ταξινόμησης είναι από το μεγαλύτερο προς το μικρότερο.

Για να ταξινομήσετε την καταχώριση κατά χρόνο τροποποίησης, χρησιμοποιήστε την επιλογή -t (ταξινόμηση κατά χρόνο τροποποίησης).

ls -l -t

Η καταχώριση ταξινομείται με βάση τον χρόνο τροποποίησης.

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

Ένας γρήγορος τρόπος για να αποκτήσετε τα νεότερα και παλαιότερα αρχεία σε έναν κατάλογο είναι να χρησιμοποιήσετε το ls με τις εντολές head and tail.

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

ls -t | head -1

Για να λάβετε το παλαιότερο αρχείο ή κατάλογο, χρησιμοποιήστε αυτήν την εντολή:

ls -t | tail -1

Για να αντιστρέψετε τη σειρά ταξινόμησης

Για να αντιστρέψετε οποιαδήποτε από τις εντολές ταξινόμησης, χρησιμοποιήστε την επιλογή -r (αντίστροφη).

ls -l -h -S -r

Η καταχώριση ταξινομείται τώρα από το μικρότερο αρχείο στο μεγαλύτερο αρχείο.

Και υπάρχουν περισσότερα

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

Χρειάζεται να δείτε τις χρονικές σημάνσεις αρχείων με τη μέγιστη ακρίβεια που μπορεί να προσφέρει το Linux; Χρησιμοποιήστε την επιλογή πλήρους απασχόλησης:

ls --full-time

Ίσως θέλετε να δείτε τον αριθμό inode των αρχείων; Χρησιμοποιήστε την επιλογή inode:

ls -i

Εργάζεστε σε μονόχρωμη οθόνη και θέλετε να αφαιρέσετε κάθε κίνδυνο σύγχυσης των αρχείων για καταλόγους και συνδέσμους; Χρησιμοποιήστε την επιλογή ταξινόμησης και το ls θα προσθέσει ένα από αυτά σε κάθε καταχώριση καταχώρισης:

/: Ένας κατάλογος.
@: Ένας συμβολικός σύνδεσμος.
|: Ένας επώνυμος σωλήνας.
=: Μια πρίζα.
*: Ένα εκτελέσιμο αρχείο

ls -F

Κάντε λίγο σκάψιμο. Θα διαπιστώσετε ότι το ls είναι μια πλούσια φλέβα και θα συνεχίσετε να γυρίζετε πολύτιμους λίθους.