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

Οι εντολές rm και   rmdir διαγράφουν αρχεία και καταλόγους σε Linux, macOS και άλλα λειτουργικά συστήματα τύπου Unix. Είναι παρόμοια με τα del και   deltree εντολές στα Windows και DOS. Αυτές οι εντολές είναι πολύ ισχυρές και έχουν αρκετές επιλογές.

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

Πώς να αφαιρέσετε αρχεία με rm

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

rm αρχείο_1.txt

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

rm ./path/to/the/file/file_1.txt

Μπορείτε να μεταβιβάσετε περισσότερα από ένα ονόματα αρχείων στο rm. Με αυτόν τον τρόπο, διαγράφονται όλα τα καθορισμένα αρχεία.

rm file_2.txt file_3.txt

Οι χαρακτήρες μπαλαντέρ μπορούν να χρησιμοποιηθούν για την επιλογή ομάδων αρχείων προς διαγραφή. Το *εκπροσωπεί πολλούς χαρακτήρες και ?αντιπροσωπεύει ένα μόνο χαρακτήρα. Αυτή η εντολή θα διαγράψει όλα τα αρχεία εικόνας png στον τρέχοντα κατάλογο εργασίας.

rm * .png

Αυτή η εντολή θα διαγράψει όλα τα αρχεία με επέκταση ενός χαρακτήρα. Για παράδειγμα, αυτό θα διαγράψει το File.1 και το File.2, αλλά όχι το File.12.

rm *.;

Εάν ένα αρχείο προστατεύεται από εγγραφή, θα σας ζητηθεί πριν από τη διαγραφή του αρχείου. Πρέπει να απαντήσετε με yή nκαι να πατήσετε "Enter".

Για να μειώσετε τον κίνδυνο χρήσης rmμε χαρακτήρες μπαλαντέρ χρησιμοποιήστε την -i(διαδραστική) επιλογή. Αυτό απαιτεί από εσάς να επιβεβαιώσετε τη διαγραφή κάθε αρχείου.

rm -i *. ημερομηνία

Η -f επιλογή (force) είναι το αντίθετο του διαδραστικού. Δεν ζητά επιβεβαίωση ακόμη και αν τα αρχεία προστατεύονται από εγγραφή.

rm -f όνομα αρχείου

Πώς να αφαιρέσετε καταλόγους με rm

Για να καταργήσετε έναν κενό κατάλογο, χρησιμοποιήστε την -d επιλογή (κατάλογος). Μπορείτε να χρησιμοποιήσετε χαρακτήρες μπαλαντέρ ( *και ?) σε ονόματα καταλόγου όπως μπορείτε με ονόματα αρχείων.

κατάλογος rm -d

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

rm -d κατάλογος1 κατάλογος2 / διαδρομή / προς / κατάλογο3

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

rm -r κατάλογος1 κατάλογος2 κατάλογος3

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

κατάλογος rm -rf

Απαιτείται προσοχή εδώ. Κάνοντας ένα λάθος με την rm -rfεντολή θα μπορούσε να προκαλέσει απώλεια δεδομένων ή δυσλειτουργία του συστήματος. Είναι επικίνδυνο και η προσοχή είναι η καλύτερη πολιτική. Για να κατανοήσετε τη δομή του καταλόγου και τα αρχεία που θα διαγραφούν από την rm -rfεντολή, χρησιμοποιήστε την treeεντολή.

Χρησιμοποιήστε το  apt-get για να εγκαταστήσετε αυτό το πακέτο στο σύστημά σας εάν χρησιμοποιείτε το Ubuntu ή άλλη διανομή που βασίζεται στο Debian. Σε άλλες διανομές Linux, χρησιμοποιήστε το εργαλείο διαχείρισης πακέτων διανομής Linux.

sudo apt-get εγκατάσταση δέντρου

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

δέντρο

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

διαδρομή δέντρου / προς / κατάλογο

Η rmεντολή έχει επίσης --one-file-system, --no-preserve-root, --preserve-rootεπιλογές, αλλά αυτές προτείνονται μόνο για προχωρημένους χρήστες. Εάν κάνετε κάτι λάθος, θα μπορούσατε να διαγράψετε κατά λάθος όλα τα αρχεία του συστήματός σας. Ανατρέξτε στη σελίδα εγχειριδίων της εντολής για περισσότερες πληροφορίες.

Πώς να αφαιρέσετε καταλόγους με rmdir

Υπάρχει μια άλλη εντολή, που ονομάζεται rmdir, την οποία μπορείτε να χρησιμοποιήσετε για να διαγράψετε καταλόγους. Η διαφορά μεταξύ rmκαι rmdirείναι ότι rmdirμπορεί να διαγράψει μόνο κενά καταλόγους. Δεν θα διαγράψει ποτέ αρχεία.

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

Διαγράψτε έναν μόνο κατάλογο στον τρέχοντα κατάλογο μεταβιβάζοντας το όνομά του σε rmdir:

κατάλογος rmdir

Διαγράψτε πολλούς καταλόγους μεταβιβάζοντας μια λίστα ονομάτων   rmdir:

rmdir κατάλογος1 κατάλογος2 κατάλογος3

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

rmdir / διαδρομή / προς / κατάλογο

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

Όταν rmdirδίνει ένα σφάλμα "Ο κατάλογος δεν είναι άδειος", σταματά να επεξεργάζεται τους καταλόγους που του έχουν διαβιβαστεί στη γραμμή εντολών. Εάν του ζητήσατε να διαγράψετε τέσσερις καταλόγους και ο πρώτος είχε αρχεία σε αυτό, rmdirθα σας έδινε το μήνυμα σφάλματος και δεν θα κάνατε τίποτα περισσότερο. Μπορείτε να το αναγκάσετε να αγνοήσει αυτά τα σφάλματα με την --ignore-fail-on-non-emptyεπιλογή, έτσι ώστε να υποβάλλονται σε επεξεργασία άλλοι κατάλογοι.

Στο ακόλουθο παράδειγμα έχουν περάσει δύο φάκελοι rmdir, αυτοί είναι work/reportsκαι work/quotes. Η --ignore-fail-on-non-emptyεπιλογή έχει συμπεριληφθεί στην εντολή. Ο work/reportsφάκελος έχει αρχεία σε αυτό, επομένως rmdirδεν μπορεί να διαγραφεί Η --ignore-fail-on-non-emptyεπιλογή αναγκάζει rmdirνα αγνοήσει το σφάλμα και να προχωρήσει στον επόμενο φάκελο που πρέπει να επεξεργαστεί, δηλαδή work/quotes. Αυτός είναι ένας άδειος φάκελος και τον rmdirδιαγράφει.

Αυτή ήταν η εντολή που χρησιμοποιήθηκε.

rmdir --ignore-fail-on-non-άδεια εργασία / αναφορές / εργασία / εισαγωγικά

Μπορείτε να χρησιμοποιήσετε την  -p επιλογή (γονείς) για να διαγράψετε έναν κατάλογο και να διαγράψετε και τους γονικούς καταλόγους του. Αυτό το τέχνασμα λειτουργεί επειδή rmdirξεκινά με τον κατάλογο προορισμού και, στη συνέχεια, επιστρέφει στον γονέα. Αυτός ο κατάλογος θα πρέπει τώρα να είναι κενός, ώστε να μπορεί να διαγραφεί από rmdir, και η διαδικασία επαναλαμβάνει την επιστροφή της διαδρομής στην οποία παρασχέθηκε rmdir.

Στο ακόλουθο παράδειγμα, η εντολή που μεταβιβάζεται rmdirείναι:

rmdir -p εργασία / τιμολόγια

Τόσο οι κατάλογοι όσο invoicesκαι οι workκατάλογοι διαγράφονται, όπως ζητήθηκε.

Είτε χρησιμοποιείτε Bash ή οποιοδήποτε άλλο κέλυφος, το Linux παρέχει ευέλικτες και ισχυρές εντολές για τη διαγραφή καταλόγων και αρχείων απευθείας από τη γραμμή εντολών του τερματικού. Μερικοί άνθρωποι προτιμούν να έχουν μια ροή εργασίας που περιστρέφεται γύρω από το τερματικό. Άλλοι μπορεί να μην έχουν άλλη επιλογή στο θέμα. Ενδέχεται να εργάζονται σε διακομιστές χωρίς εγκατεστημένο GUI ή σε απομακρυσμένη περίοδο λειτουργίας σε ένα σύστημα χωρίς κεφάλι, όπως το Raspberry Pi. Αυτές οι εντολές είναι ιδανικές για αυτήν την ομάδα ανθρώπων.

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