Android

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

Harvard CS50 lecture 5

Harvard CS50 lecture 5

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

Anonim

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

Σε αυτόν τον οδηγό, θα σας δείξουμε πώς μπορείτε να καταργήσετε (διαγράψετε) συμβολικούς συνδέσμους σε συστήματα Linux / UNIX χρησιμοποιώντας τις εντολές rm , unlink , and find .

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

Για να καταργήσετε ένα σύμβολο, πρέπει να έχετε δικαιώματα εγγραφής στον κατάλογο που περιέχει το σύμβολο. Διαφορετικά, θα λάβετε σφάλμα "Η λειτουργία δεν επιτρέπεται".

Όταν καταργείτε ένα σύμβολο, το αρχείο στο οποίο επισημαίνεται δεν επηρεάζεται.

Χρησιμοποιήστε την ls -l για να ελέγξετε εάν ένα δεδομένο αρχείο είναι ένας συμβολικός σύνδεσμος και για να βρείτε το αρχείο ή τον κατάλογο με τον συμβολικό σύνδεσμο.

ls -l /usr/bin/python

lrwxrwxrwx 1 root root 9 Apr 16 2018 /usr/bin/python -> python2.7

Ο πρώτος χαρακτήρας "l", δηλώνει ότι το αρχείο είναι σύμβολο συμβόλων. Το σύμβολο "->" εμφανίζει το αρχείο στο οποίο αναφέρεται το σύμβολο.

Κατάργηση συμβολικών συνδέσεων με rm

Η εντολή rm καταργεί συγκεκριμένα αρχεία και καταλόγους.

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

rm symlink_name

Με την επιτυχία, η εντολή εξέρχεται με μηδέν και δεν εμφανίζει έξοδο.

Με το rm μπορείτε να διαγράψετε ταυτόχρονα περισσότερους από έναν συμβολικούς συνδέσμους. Για να γίνει αυτό, περάστε τα ονόματα των συμβόλλων ως επιχειρήματα, χωρισμένα με χώρο:

rm symlink1 symlink2

Για να σας ζητηθεί προτού αφαιρέσετε το σύμβολο, χρησιμοποιήστε την επιλογή -i :

rm -i symlink_name

Για να επιβεβαιώσετε τον τύπο y και πατήστε Enter .

rm: remove symbolic link 'symlink_name'?

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

rm symlink_to_dir/

rm: cannot remove 'symlink_to_dir/': Is a directory

Εάν το όνομα του αρχείου λήγει με / , η εντολή rm υποθέτει ότι το αρχείο είναι κατάλογος. Το σφάλμα συμβαίνει επειδή, όταν χρησιμοποιείται χωρίς την επιλογή -d ή -r , το rm δεν μπορεί να διαγράψει τους καταλόγους.

Για να είστε στην ασφαλή πλευρά, ποτέ- -r επιλογή κατά την αφαίρεση συμβολικών συνδέσεων με rm . Για παράδειγμα, εάν πληκτρολογήσετε:

rm -f symlink_to_dir/

Τα περιεχόμενα του καταλόγου προορισμού θα διαγραφούν.

Κατάργηση συμβολικών συνδέσεων με unlink

Η εντολή unlink διαγράφει ένα δεδομένο αρχείο. Σε αντίθεση με το rm , η unlink δέχεται μόνο ένα μόνο επιχείρημα.

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

unlink symlink_name

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

Μην προσαρμόζετε την / πίσω κάθετο στο τέλος του ονόματος του συμβόλου, επειδή η unlink δεν μπορεί να καταργήσει τους καταλόγους.

Βρείτε και διαγράψτε τους σπασμένους συμβολικούς συνδέσμους

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

find /path/to/directory -xtype l

/path/to/directory/symlink1 /path/to/directory/subdir/symlink2

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

find /path/to/directory -maxdepth 1 -xtype l

/path/to/directory/symlink1

Αφού εντοπίσετε τα σπασμένα σύμβολα, μπορείτε είτε να τα αφαιρέσετε χειροκίνητα με rm είτε να unlink ή να χρησιμοποιήσετε την επιλογή -delete της εντολής find :

find /path/to/directory -xtype l -delete

συμπέρασμα

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

rm αποσυνδέστε το τερματικό αναζήτησης