Android

Πώς να αφαιρέσετε (διαγράψετε) τον κατάλογο στο linux

(How-To) Create a Fully-Persistent Ubuntu 16.04 USB [Request]

(How-To) Create a Fully-Persistent Ubuntu 16.04 USB [Request]

Πίνακας περιεχομένων:

Anonim

Υπάρχουν διάφοροι διαφορετικοί τρόποι κατάργησης καταλόγων σε συστήματα Linux. Εάν χρησιμοποιείτε έναν διαχειριστή αρχείων επιφάνειας εργασίας όπως τα αρχεία του Gnome ή το δελφίνι του KDE, τότε μπορείτε να διαγράψετε αρχεία και καταλόγους χρησιμοποιώντας τη γραφική διεπαφή χρήστη του διαχειριστή. Ωστόσο, αν εργάζεστε σε διακομιστή χωρίς κεφαλίδες ή θέλετε να καταργήσετε ταυτόχρονα πολλούς καταλόγους, η καλύτερη επιλογή σας είναι να διαγράψετε τους καταλόγους (φακέλους) από τη γραμμή εντολών.

, θα εξηγήσουμε πώς μπορείτε να διαγράψετε τους καταλόγους στο Linux χρησιμοποιώντας τις rmdir , rm και find .

Πριν ξεκινήσεις

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

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

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

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

Αφαίρεση καταλόγων με rmdir

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

Για να διαγράψετε έναν κατάλογο με rmdir , πληκτρολογήστε την εντολή που ακολουθείται από το όνομα του καταλόγου που θέλετε να καταργήσετε. Για παράδειγμα, για να διαγράψετε έναν κατάλογο που ονομάζεται dir1 θα πληκτρολογήσετε:

rmdir dir1

Εάν ο κατάλογος δεν είναι κενός, θα λάβετε το ακόλουθο σφάλμα:

rmdir: failed to remove 'dir1': No such file or directory

Σε αυτήν την περίπτωση, θα χρειαστεί να χρησιμοποιήσετε την εντολή rm ή να καταργήσετε με μη αυτόματο τρόπο το περιεχόμενο του καταλόγου, πριν να το διαγράψετε.

Κατάργηση καταλόγων με rm

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

Από προεπιλογή, όταν χρησιμοποιείται χωρίς καμία επιλογή, το rm δεν καταργεί τους καταλόγους. Για να διαγράψετε έναν κενό κατάλογο, χρησιμοποιήστε την επιλογή -d ( --dir ) και για να διαγράψετε έναν μη κενό κατάλογο και όλο το περιεχόμενό του να χρησιμοποιεί την επιλογή -r ( --recursive ή -R ).

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

rm -r dir1

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

rm -rf dir1

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

rm -r dir1 dir2 dir3

Η επιλογή -i λέει στο rm να σας ζητήσει να επιβεβαιώσετε τη διαγραφή κάθε υποκαταλόγου και αρχείου. Εάν ο κατάλογος περιέχει πολλά αρχεία, αυτό μπορεί να είναι ελάχιστα ενοχλητικό, επομένως μπορείτε να χρησιμοποιήσετε την επιλογή -I που θα σας προτρέψει μόνο μία φορά πριν προχωρήσετε στη διαγραφή.

rm -rI dir1

Για να καταργήσετε τον τύπο καταλόγου y και πατήστε Enter .

rm: remove 1 argument recursively? y

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

rm -r *_bak

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

Αφαίρεση καταλόγων με find

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

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

find. -type d -name '*_cache' -exec rm -r {} +

Ας αναλύσουμε την παραπάνω εντολή:

  • /dir - αναζητήστε αναδρομικά τον τρέχοντα κατάλογο εργασίας ( . ). -type d - περιορίζει την αναζήτηση σε καταλόγους. -name '*_cache' - αναζήτηση μόνο κατάλογοι που τελειώνουν με _cache -exec - εκτελεί μια εξωτερική εντολή με προαιρετικά επιχειρήματα, στην περίπτωση αυτή είναι rm -r . {} + - προσαρτά τα αρχεία που βρέθηκαν στο τέλος της εντολής rm .

Αφαίρεση όλων των κενών καταλόγων

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

find /dir -type d -empty -delete

Ακολουθεί μια εξήγηση για τις επιλογές που χρησιμοποιούνται:

  • /dir - αναζητήστε αναδρομικά στον /dir . -type d - περιορίζει την αναζήτηση σε καταλόγους. -empty - περιορίζει την αναζήτηση μόνο σε κενές καταλόγους. -delete - διαγράφει όλους τους κενούς καταλόγους που βρέθηκαν στην υποδίαση. -delete μπορεί να διαγράψει μόνο κενές καταλόγους.

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

/ bin / rm: Η λίστα παραμέτρων είναι πολύ μεγάλη

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

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

Η πιο εύκολη λύση είναι πρώτα να διαγράψετε όλα τα αρχεία μέσα στον κατάλογο με την εντολή find και στη συνέχεια να διαγράψετε τον κατάλογο:

find /dir -type f -delete && rm -r /dir

συμπέρασμα

Με rm και find μπορείτε να διαγράψετε τους καταλόγους βάσει διαφορετικών κριτηρίων γρήγορα και αποτελεσματικά.

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

rm rmdir βρείτε τερματικό