Η εντολή Linux rm διαγράφει αρχεία και καταλόγους. Για να χρησιμοποιήσετε αυτό το εργαλείο με ασφάλεια, πρέπει να είστε σίγουροι για το τι θα συμβεί όταν πατήσετε "Enter". Εδώ είναι τι πρέπει να ξέρετε.

Τι είναι η εντολή rm στο Linux;
Η εντολή Linux rm είναι κυρίως για τη διαγραφή αρχείων. Είναι ένα από τα πράγματα που οι περισσότεροι άνθρωποι αντιμετωπίζουν αμέσως μετά την έναρξη χρήσης του Linux. Απλώς λόγω του ότι είστε νέος χρήστης στο Linux, είναι πιθανό να κάνετε λάθη. Θα δημιουργήσετε ή θα αντιγράψετε αρχεία κατά λάθος, με λάθος όνομα ή σε λάθος τοποθεσία. Είναι όλα μέρος της καμπύλης εκμάθησης για τη γραμμή εντολών. Οι εκκαθαρίσεις για τέτοια σφάλματα περιλαμβάνουν το rm.
Η εντολή rm μπορεί να διαγράψει αρχεία, ομάδες αρχείων, καταλόγους ή ολόκληρα δέντρα καταλόγου. Αυτός είναι ο λόγος για τον οποίο πρέπει να χρησιμοποιείται με προσοχή. Η χρήση του rm δεν είναι δύσκολη, αλλά η ποινή για την αποτυχία είναι υψηλή.
Όταν ένα αρχείο διαγράφεται με rm, εξαφανίζεται. Δεν μεταφέρεται στα σκουπίδια. Διαγράφεται αμέσως. Αυτό δεν σημαίνει ότι πρέπει να αποφύγετε τη χρήση του rm. Αλλά για να το χρησιμοποιήσετε με ασφάλεια, πρέπει να γνωρίζετε τι μπορεί να κάνει και να βεβαιωθείτε ότι το χρησιμοποιείτε σωστά.
Ορισμένα εργαλεία είναι πιο επικίνδυνα από άλλα και λιγότερο συγχωρούν τα λάθη. Γι' αυτό δεν υπήρχε ταινία με το όνομα The Texas Wrench Massacre. Το rm δεν είναι κλειδί, είναι σίγουρα αλυσοπρίονο.
Οι άνθρωποι χρησιμοποιούν αλυσοπρίονα όλη μέρα κάθε μέρα, και εφόσον χρησιμοποιούν ένα υπεύθυνα και συνειδητά, είναι μια χαρά. Είναι η ίδια συμφωνία με το rm. Όταν βγάζετε το rm από την εργαλειοθήκη σας, θα πρέπει να επιβραδύνει και να ελέγξετε και μετά να ελέγξετε ξανά στη γραμμή εντολών.
Η εντολή rm είναι ένα εκτελέσιμο, όχι μέρος του φλοιού. Έτσι, παρόλο που χρησιμοποιούμε το Bash εδώ, είναι το τυπικό Linux rm, όχι ένα ειδικό Bash rm.
Πώς να διαγράψετε αρχεία χρησιμοποιώντας το rm
Ο απλούστερος τρόπος χρήσης του rm είναι να δώσετε το όνομα του αρχείου που θέλετε να διαγράψετε.
rm config. gc

Επιστρέφετε σιωπηλά στη γραμμή εντολών. Η rm ακολουθεί την κλασική στάση του Linux, ότι αν δεν παραπονιέται για τίποτα, μπορείτε να υποθέσετε ότι έκανε αυτό που ζητήσατε. Η παροχή ενός ονόματος αρχείου όπως αυτό αναγκάζει το rm να αναζητήσει το αρχείο στον τρέχοντα κατάλογο εργασίας.
Μπορείτε να δώσετε πολλά ονόματα αρχείων στη γραμμή εντολών. Μπορείτε επίσης να δώσετε μια διαδρομή καταλόγου εάν το αρχείο που θέλετε να διαγράψετε δεν βρίσκεται στον τρέχοντα κατάλογο.
rm memlog.sh /home/dave/dev-archive/config.gc

Και πάλι, δεν αναφέρεται τίποτα εάν η rm κατάφερε να διαγράψει τα επιλεγμένα αρχεία.
Χρησιμοποιήστε χαρακτήρες μπαλαντέρ με rm
Οι χαρακτήρες μπαλαντέρ σάς επιτρέπουν να καθορίσετε ομάδες αρχείων χωρίς να χρειάζεται να καταχωρίσετε μεμονωμένα αρχεία στη γραμμή εντολών.
Ένας αστερίσκος "*" αντιπροσωπεύει οποιαδήποτε συμβολοσειρά χαρακτήρων, συμπεριλαμβανομένου κανενός. ερωτηματικό "?" αντιπροσωπεύει οποιονδήποτε μεμονωμένο χαρακτήρα.
Για να επαληθεύσετε ότι οι χαρακτήρες μπαλαντέρ σας θα ταιριάζουν με αυτό που περιμένετε να είναι και τίποτα περισσότερο, μπορείτε να τους χρησιμοποιήσετε με το ls πριν τις χρησιμοποιήσετε με το rm.
Για να διαγράψετε όλα τα αρχεία PNG στον τρέχοντα κατάλογο, χρησιμοποιήστε το "*.png". Αυτό σημαίνει ότι οποιαδήποτε ακολουθία χαρακτήρων ακολουθούμενη από ".png" θα αντιστοιχιστεί. Όταν τα αρχεία διαγράφονται, μπορούμε να χρησιμοποιήσουμε το ls για να ελέγξουμε αν έχουν φύγει.
ls*.png
rm*.png
ls*.png

Στον δοκιμαστικό μας υπολογιστή, έχουμε δύο αρχεία στον τρέχοντα κατάλογο με ονόματα που ξεκινούν με "config".
Μπορούμε να παραλείψουμε και τα δύο χρησιμοποιώντας τον χαρακτήρα μπαλαντέρ αστερίσκου. Ταιριάζει και με τα δύο αρχεία επειδή το rm αναζητά ονόματα αρχείων που ξεκινούν με "config", ακολουθούμενα από οποιαδήποτε ακολουθία χαρακτήρων. Σε ένα αρχείο, αυτή η ακολουθία χαρακτήρων είναι ".sl3", η επέκταση ονόματος αρχείου. Το άλλο όνομα αρχείου δεν έχει χαρακτήρες μετά το "config", αλλά επειδή ο αστερίσκος ταιριάζει με κάποιον ή κανέναν χαρακτήρα, ταιριάζει και με αυτό το όνομα αρχείου.
lsconfig*
rmconfig*
lsconfig*

Μπορείτε να χρησιμοποιήσετε το ερωτηματικό σε ζευγάρια. Αυτό θα διαγράψει αρχεία που έχουν ακριβώς δύο επεκτάσεις αρχείων γράμματα.
ls*.??
rm*.??
ls*.??
Χρησιμοποιήστε το rm διαδραστικά
Ο ασφαλής τρόπος χρήσης του rm είναι να το αναγκάσετε να ζητήσει επιβεβαίωση πριν διαγράψετε κάθε αρχείο. Η επιλογή -i (διαδραστική) σας επιτρέπει να το κάνετε αυτό. Όταν προσθέτετε αυτήν την επιλογή στη γραμμή εντολών, το rm θα σας ζητά πριν από κάθε διαγραφή, δίνοντάς σας την ευκαιρία να παραλείψετε ενέργειες που δεν είχατε σκοπό.
Θα χρησιμοποιήσουμε την επιλογή -i (διαδραστική) σε αυτήν την εντολή. Προσπαθεί να διαγράψει όλα τα αρχεία με επέκταση αρχείου ενός χαρακτήρα.
rm -i *.;

Κάθε αρχείο που ταιριάζει παρουσιάζεται με τη σειρά. Εάν απαντήσετε "Y" ή "Y", το αρχείο θα διαγραφεί. Εάν απαντήσετε "n", το αρχείο διατηρείται. Στην πραγματικότητα, εάν απαντήσετε με οτιδήποτε άλλο εκτός από "y" ή "y", το αρχείο διατηρείται. Μπορείτε απλώς να πατήσετε enter και το αρχείο διατηρείται.
Μπορείτε να επεξεργαστείτε γρήγορα τη λίστα των αρχείων σας, να διαγράψετε ή να παραλείψετε αρχεία για να επιλέξετε ποια αρχεία θα αφαιρέσετε. Όπως θα δούμε, μπορείτε να χρησιμοποιήσετε την επιλογή -i (διαδραστική) με τις άλλες επιλογές rm.
χρησιμοποιώντας την επιλογή δύναμης rm
Εάν προσπαθήσετε να διαγράψετε ένα αρχείο μόνο για ανάγνωση, το rm θα σας ζητήσει επιβεβαίωση πριν διαγράψετε το αρχείο. Αυτό είναι ένα καλό δίχτυ ασφαλείας, αλλά μπορεί να γίνει κουραστικό αν έχετε πολλά αρχεία να διαγράψετε.
rm geonames. sl3

Η επιλογή -f (force) δίνει εντολή στον rm να μην κάνει ποτέ προτροπή. Του λες «Ναι, σβήσε όλα τα αρχεία που μου ζητάς συνήθως». Επίσης εμποδίζει την rm να παραπονιέται ότι δεν υπάρχουν αρχεία.
rm -f γεωονήματα.sl3

Η επιλογή -f (force) χρησιμοποιείται συχνά όταν διαγράφετε ένα ένθετο σύνολο αρχείων και καταλόγων.
Διαγραφή καταλόγων με rm
Η εντολή rm μπορεί προαιρετικά να αφαιρέσει και καταλόγους, μαζί με τα αρχεία που περιέχουν. Αυτό είναι παρόμοιο με την εντολή rmdir, αλλά το rmdir δεν μπορεί να διαγράψει καταλόγους που περιέχουν αρχεία. Διαγράφει μόνο άδειους καταλόγους. Η εντολή rm μπορεί εύκολα να διαγράψει καταλόγους που περιέχουν αρχεία και άλλους καταλόγους.
Η διαγραφή ενός καταλόγου είναι σαν τη διαγραφή ενός αρχείου. Παρέχουμε το όνομα του καταλόγου στη γραμμή εντολών. Πρέπει να συμπεριλάβουμε την επιλογή -d (κατάλογος). Όπως κάναμε όταν διαγράφαμε αρχεία, μπορούμε να παρέχουμε τα ονόματα πολλών καταλόγων. Μπορούμε να παρέχουμε μια διαδρομή προς έναν κατάλογο που δεν υπάρχει στον τρέχοντα κατάλογο εργασίας.
rm -d παλιά-έργα

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

Η δεύτερη εντολή πέτυχε.
Για να αλλάξουμε το rm σε λειτουργία πλήρους πριονιού, μπορούμε να συνδυάσουμε τις επιλογές -r (αναδρομική) και -f (δύναμη). Αυτό λέει στην rm να διαγράφει αναδρομικά όλα τα αρχεία και τους φακέλους στο δέντρο καταλόγου, ακόμα κι αν είναι μόνο για ανάγνωση, και χωρίς να μας ζητά.
Στον δοκιμαστικό μας υπολογιστή, έχουμε έναν κατάλογο που ονομάζεται "migrated code". Περιέχει αρχεία και έναν άλλο κατάλογο που ονομάζεται "6502". Ο κατάλογος "6502" περιέχει επίσης αρχεία και έναν άλλο κατάλογο που ονομάζεται "ASM". Υπάρχουν αρχεία σε αυτόν τον κατάλογο επίσης. Ορισμένα αρχεία είναι μόνο για ανάγνωση.
Θα συμπεριλάβουμε επίσης την εντολή -v (verbose) έτσι ώστε το rm να μας λέει τι να κάνουμε.
RM -RFV μετανάστευση κώδικα

Στην έξοδο μπορούμε να δούμε ότι τα αρχεία έχουν αφαιρεθεί και όταν είναι άδεια αφαιρούνται και οι κατάλογοι.

Αποφύγετε τα λάθη όταν χρησιμοποιείτε το rm
Τα κενά και άλλοι περίεργοι χαρακτήρες στα ονόματα αρχείων μπορεί να προκαλέσουν προβλήματα. Τα ονόματα αρχείων που ξεκινούν με παύλα "-", για παράδειγμα, μπορούν να συγχέονται με τις επιλογές της γραμμής εντολών. Εάν έχουμε ένα αρχείο που ονομάζεται "-contributors.txt", η rm θα προσπαθήσει να επεξεργαστεί το όνομα ως μια σειρά από επιλογές γραμμής εντολών.
Εφόσον το rm δεν έχει μια επιλογή που ονομάζεται "-c", η ανάλυση της γραμμής εντολών αποτυγχάνει και το αρχείο δεν διαγράφεται. Για να διαγράψετε ένα αρχείο, πρέπει να βάλετε το πρόθεμα "./" για να δώσετε μια διαδρομή προς αυτό.
rm -συνεισφέροντες. txt
rm./-contributors.txt

Τα κενά στα ονόματα αρχείων είναι επίσης ένα ζήτημα. Είτε αναφέρετε ολόκληρο το όνομα αρχείου είτε χρησιμοποιήστε την καρτέλα για να εισαγάγετε το όνομα αρχείου στη γραμμή εντολών για τον εαυτό σας, διαφεύγοντας κενά όπως κάνετε. Εάν δεν χρησιμοποιείτε καμία από αυτές τις επιλογές, η rm θα αντιμετωπίζει κάθε τμήμα του ονόματος αρχείου ως ένα μόνο αρχείο.
Εδώ, έχουμε δύο αρχεία, το ένα ονομάζεται "Backup" και το άλλο που ονομάζεται "Delete Backup". Μπορούμε να απεικονίσουμε το πρόβλημα με αυτά τα ονόματα αρχείων χρησιμοποιώντας το ls. Εάν προσπαθήσουμε να χρησιμοποιήσουμε το ls στο αρχείο Backup to Delete και δεν διαφύγουμε ή μετακινήσουμε το όνομα του αρχείου, η εντολή αποτυγχάνει.
ls -hl αντίγραφο ασφαλείας για διαγραφή

Ο ls παραπονιέται ότι δεν μπορεί να βρει τα αρχεία που ονομάζονται "to" ή "delete", αλλά βρίσκει ένα αρχείο που ονομάζεται "backup". Αυτό θα κάνει και η rm. Θα παραπονεθεί ότι λείπουν δύο αρχεία και, στη συνέχεια, θα διαγράψει το αρχείο που ονομάζεται "Backup", το οποίο δεν θέλαμε.
rm backup για διαγραφή

Η rm πιστεύει ότι λειτουργεί με τρία αρχεία, το 'backup', το 'to' και το 'delete'. Παραπονιέται ότι δεν μπορεί να βρει το To και το Delete, αλλά βρίσκει το Backup και το διαγράφει σιωπηλά.
Η αναφορά του ονόματος αρχείου επιτρέπει στην rm να διαγράψει το σωστό αρχείο.
rm 'backup to delete'

Μπορείτε επίσης να διαφύγετε από κενά χρησιμοποιώντας μια ανάστροφη κάθετο "\", όπως αυτό:
rm backup\to\delete

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




