Πώς να βρείτε ένα αρχείο στο Linux με την εντολή Find
Η εντολή find
Linux είναι μία από τις πιο σημαντικές και εύχρηστες εντολές σε συστήματα Linux. Μπορεί, όπως υποδηλώνει και το όνομά του, να βρει αρχεία στον υπολογιστή σας Linux με βάση σχεδόν οποιεσδήποτε συνθήκες και μεταβλητές που ορίσατε. Μπορείτε να βρείτε αρχεία με δικαιώματα, χρήστες, ομάδες, τύπο αρχείου, ημερομηνία, μέγεθος και άλλα πιθανά κριτήρια χρησιμοποιώντας την εντολή find
.
Η εντολή find
είναι διαθέσιμη στα περισσότερα διανομής Linux από προεπιλογή, οπότε δεν χρειάζεται να εγκαταστήσετε ένα πακέτο για αυτό.
Σε αυτό το σεμινάριο θα σας δείξουμε πώς μπορείτε να βρείτε αρχεία στο Linux χρησιμοποιώντας διάφορους κοινούς συνδυασμούς εκφράσεων αναζήτησης στη γραμμή εντολών.
Εύρεση αρχείων με όνομα σε τρέχοντες κατάλογους
Ο πιο προφανής τρόπος αναζήτησης αρχείων είναι με το όνομα. Για να βρείτε ένα όνομα αρχείου στον τρέχοντα κατάλογο, εκτελέστε:
εύρημα . -name photo.png
Αν θέλετε να βρείτε ένα όνομα αρχείου που περιέχει κεφαλαία και μικρά γράμματα, εκτελέστε:
εύρημα . -iname photo.png
Αν θέλετε να βρείτε ένα αρχείο στο ριζικό κατάλογο, προθέστε την αναζήτησή σας με το sudo
οποίο θα σας δώσει όλα τα απαραίτητα δικαιώματα και το σύμβολο '/' που λέει στο Linux να ψάξει στον ριζικό κατάλογο. Τέλος, η έκφραση -print
εμφανίζει τους καταλόγους των αποτελεσμάτων αναζήτησης. Εάν αναζητούσατε το Gzip, πληκτρολογήστε:
sudo βρείτε / -name gzip -print
Εύρεση αρχείων κάτω από συγκεκριμένο κατάλογο
Αν θέλετε να βρείτε αρχεία κάτω από έναν συγκεκριμένο κατάλογο όπως "/ home", εκτελέστε:
find / home -name filename.txt
Αν θέλετε να βρείτε αρχεία με την επέκταση ".txt" κάτω από τον κατάλογο "/ home", εκτελέστε:
find / home -name * .txt
Για να εντοπίσετε αρχεία των οποίων το όνομα είναι "test.txt" κάτω από πολλούς καταλόγους όπως "/ home" και "/ opt, " εκτελέστε:
find / home / opt -name test.txt
Για να βρείτε κρυφά αρχεία στον κατάλογο "/ home", εκτελέστε:
find / home -name ". *"
Για να βρείτε ένα και μόνο αρχείο που ονομάζεται "test.txt" και εκτελέστε:
find / home -type f -name test.txt -exec rm -f {}
Για να βρείτε όλα τα κενά αρχεία στον κατάλογο "/ opt", εκτελέστε:
find / opt -type f -empty
Βρείτε τους καταλόγους χρησιμοποιώντας το όνομα
Αν θέλετε να βρείτε όλους τους καταλόγους των οποίων το όνομα είναι "testdir" στον κατάλογο "/ home", εκτελέστε:
find / home -type d -name testdir
Για να καταγράψετε όλους τους κενούς καταλόγους στο "/ home", εκτελέστε:
find / home -type d -empty
Βρείτε αρχεία με ορισμένα δικαιώματα
Η εντολή find
μπορεί να χρησιμοποιηθεί για την εύρεση αρχείων με συγκεκριμένη άδεια χρησιμοποιώντας την επιλογή perm
.
Για να βρείτε όλα τα αρχεία των οποίων τα δικαιώματα είναι "777" στον κατάλογο "/ home", εκτελέστε:
find / home -type f -perm 0777 -print
Για να βρείτε όλα τα αρχεία χωρίς άδεια "777" εκτελέστε:
εύρημα . -τύπος f! -περέ 777
Για να βρείτε όλα τα αρχεία μόνο για ανάγνωση, εκτελέστε:
find / home -perm / u = r
Για να βρείτε όλα τα εκτελέσιμα αρχεία, εκτελέστε:
find / home -perm / a = x
Για να βρείτε όλα τα αρχεία sticky bit set των οποίων τα δικαιώματα είναι "553, " εκτελέστε:
find / home -perm 1553
Για να βρείτε όλα τα αρχεία SUID που έχουν οριστεί, εκτελέστε:
find / home -perm / u = s
Για να βρείτε όλα τα αρχεία των οποίων τα δικαιώματα είναι "777" και αλλάξτε τα δικαιώματα τους σε "700, " εκτελέστε:
find / home -type f -περί 0777 -print -exec chmod 700 {};
Εύρεση αρχείων και καταλόγων με βάση την ημερομηνία και την ώρα
Για να βρείτε όλα τα αρχεία που βρίσκονται κάτω από το "/ opt" τα οποία τροποποιούνται είκοσι ημέρες νωρίτερα, εκτελέστε:
find / opt -time 20
Για να βρείτε όλα τα αρχεία που βρίσκονται κάτω από το "/ opt" στα οποία έχουν πρόσβαση είκοσι ημέρες νωρίτερα, εκτελέστε:
find / opt -atime 20
Για να βρείτε όλα τα αρχεία που βρίσκονται κάτω από το "/ opt" τα οποία έχουν τροποποιηθεί περισσότερο από τριάντα ημέρες νωρίτερα και λιγότερο από πενήντα ημέρες μετά από:
find / opt -mtime +30 -time -50
Για να βρείτε όλα τα αρχεία που βρίσκονται κάτω από το "/ opt" τα οποία έχουν αλλάξει τις τελευταίες δύο ώρες, εκτελέστε:
βρείτε / opt -cmin -120
Βρείτε αρχεία και καταλόγους με βάση το μέγεθος
Για να βρείτε όλα τα αρχεία των 10MB στον κατάλογο "/ home", εκτελέστε:
find / home-size 10M
Για να βρείτε όλα τα αρχεία στον κατάλογο "/ home" που είναι μεγαλύτερα από 10MB και μικρότερα από 50MB, εκτελέστε:
find / home-μεγέθους + 10M-μέγεθος-50M
Για να βρείτε όλα τα αρχεία ".mp4" κάτω από τον κατάλογο "/ home" με περισσότερα από 10MB και να τα διαγράψετε χρησιμοποιώντας μία μόνο εντολή, εκτελέστε:
find / home -type f -name * .mp4-μέγεθος + 10M -exec rm {};
συμπέρασμα
Και εκεί είναι - μια υγιεινή λίστα με τρόπους για να βρείτε τα αρχεία που αναζητάτε στο Linux. Δεν μπορεί να είναι τόσο απλή όσο η στοιχειώδης αναζήτηση των Windows, αλλά είναι πολύ πιο λεπτομερής και συγκεκριμένη. Υπάρχουν εντολές εδώ που χάσαμε; Ενημερώστε μας στα σχόλια!
Image Credit: Έλεγχος από DepositPhotos