Tutorial Symlink στο Linux - Πώς να δημιουργήσετε και να αφαιρέσετε έναν συμβολικό σύνδεσμο
Το symlink (ονομάζεται επίσης συμβολικός σύνδεσμος) είναι ένας τύπος αρχείου στο Linux που οδηγεί σε άλλο αρχείο ή φάκελο στον υπολογιστή σας. Το Symlinks είναι παρόμοιο με τις συντομεύσεις στα Windows.
Μερικοί άνθρωποι ονομάζουν symlinks "soft links" - έναν τύπο συνδέσμου σε συστήματα Linux / UNIX - σε αντίθεση με τους "σκληρούς συνδέσμους".
Διαφορά μεταξύ ενός μαλακού συνδέσμου και ενός σκληρού συνδέσμου
Οι μαλακοί σύνδεσμοι είναι παρόμοιοι με τις συντομεύσεις και μπορούν να οδηγούν σε άλλο αρχείο ή κατάλογο σε οποιοδήποτε σύστημα αρχείων.
Οι σκληροί σύνδεσμοι είναι επίσης συντομεύσεις για αρχεία και φακέλους, αλλά δεν είναι δυνατή η δημιουργία ενός σκληρού συνδέσμου για έναν φάκελο ή αρχείο σε διαφορετικό σύστημα αρχείων.
Ας δούμε τα βήματα που σχετίζονται με τη δημιουργία και την αφαίρεση ενός symlink. Θα δούμε επίσης τι είναι σπασμένοι σύνδεσμοι και πώς να τους διαγράψουμε.
Πώς να δημιουργήσετε ένα Symlink
Η σύνταξη για τη δημιουργία symlink είναι:
ln -s
ln
είναι η εντολή σύνδεσης. Η -s
σημαία καθορίζει ότι ο σύνδεσμος πρέπει να είναι απαλός. -s
μπορεί επίσης να εισαχθεί ως -symbolic
.
Από προεπιλογή, η ln
εντολή δημιουργεί σκληρούς συνδέσμους. Το επόμενο επιχείρημα είναι path to the file (or folder)
ότι θέλετε να συνδέσετε. (Δηλαδή, το αρχείο ή το φάκελο για τον οποίο θέλετε να δημιουργήσετε μια συντόμευση.)
Και το τελευταίο επιχείρημα είναι το path to link
ίδιο (η συντόμευση).
Πώς να δημιουργήσετε ένα Symlink για ένα αρχείο - Παράδειγμα εντολής
ln -s /home/james/transactions.txt trans.txt
Μετά την εκτέλεση αυτής της εντολής, θα είστε σε θέση να έχουν πρόσβαση στο /home/james/transactions.txt
με trans.txt
. Οποιαδήποτε τροποποίηση trans.txt
θα αντικατοπτρίζεται επίσης στο αρχικό αρχείο.
Σημειώστε ότι η παραπάνω εντολή θα δημιουργούσε το αρχείο συνδέσμου trans.txt
στον τρέχοντα κατάλογό σας Μπορείτε επίσης να δημιουργήσετε ένα συνδεδεμένο αρχείο σε έναν σύνδεσμο φακέλου:
ln -s /home/james/transactions.txt my-stuffs/trans.txt
Πρέπει να υπάρχει ήδη ένας κατάλογος που ονομάζεται ήδη "my-stuffs" στον τρέχοντα κατάλογό σας - εάν όχι η εντολή θα εμφανίσει σφάλμα.
Πώς να δημιουργήσετε ένα Symlink για ένα φάκελο - Παράδειγμα εντολής
Όπως και παραπάνω, θα χρησιμοποιούσαμε:
ln -s /home/james james
Αυτό θα δημιουργήσει έναν φάκελο symlinked που ονομάζεται «james», ο οποίος θα περιέχει τα περιεχόμενα του /home/james
. Τυχόν αλλαγές σε αυτόν τον συνδεδεμένο φάκελο θα επηρεάσουν επίσης τον αρχικό φάκελο.
Πώς να αφαιρέσετε ένα symlink
Προτού θέλετε να καταργήσετε ένα symlink, ίσως θελήσετε να επιβεβαιώσετε ότι ένα αρχείο ή φάκελος είναι symlink, έτσι ώστε να μην παραβιάσετε τα αρχεία σας.
Ένας τρόπος για να γίνει αυτό είναι:
ls -l
Η εκτέλεση αυτής της εντολής στο τερματικό σας θα εμφανίσει τις ιδιότητες του αρχείου. Στο αποτέλεσμα, εάν ο πρώτος χαρακτήρας είναι ένα μικρό γράμμα L ('l'), αυτό σημαίνει ότι το αρχείο / φάκελος είναι symlink.
Θα δείτε επίσης ένα βέλος (->) στο τέλος που υποδεικνύει το αρχείο / φάκελο στον οποίο οδηγεί η σύνδεση.
Υπάρχουν δύο μέθοδοι για την κατάργηση ενός symlink:
Πώς να χρησιμοποιήσετε το Unlink για να αφαιρέσετε ένα Symlink
Η σύνταξη είναι:
unlink
Αυτό διαγράφει το symlink εάν η διαδικασία είναι επιτυχής.
Ακόμα κι αν το symlink έχει τη μορφή φακέλου, μην προσαρτήσετε το '/', επειδή το Linux θα υποθέσει ότι είναι κατάλογος και unlink
δεν μπορεί να διαγράψει καταλόγους.
Πώς να χρησιμοποιήσετε το rm για να αφαιρέσετε ένα Symlink
Όπως έχουμε δει, ένα symlink είναι ένα άλλο αρχείο ή φάκελος που δείχνει ένα αρχικό αρχείο ή φάκελο. Για να καταργήσετε αυτήν τη σχέση, μπορείτε να καταργήσετε το συνδεδεμένο αρχείο.
Ως εκ τούτου, η σύνταξη είναι:
rm
Για παράδειγμα:
rm trans.txt rm james
Σημειώστε ότι το να προσπαθήσετε να κάνετε rm james/
θα οδηγήσει σε σφάλμα, επειδή το Linux θα υποθέσει ότι το «james /» είναι ένας κατάλογος, ο οποίος θα απαιτούσε άλλες επιλογές όπως r
και f
. Αλλά αυτό δεν θέλουμε. Ένα symlink μπορεί να είναι ένας φάκελος, αλλά ασχολούμαστε μόνο με το όνομα.
Το κύριο πλεονέκτημα του rm
over unlink
είναι ότι μπορείτε να αφαιρέσετε πολλαπλούς συνδέσμους ταυτόχρονα, όπως μπορείτε με αρχεία.
Τρόπος εύρεσης και διαγραφής σπασμένων συνδέσμων
Κατεστραμμένοι σύνδεσμοι συμβαίνουν όταν το αρχείο ή ο φάκελος που δείχνει ένα symlink διαδρομή αλλαγής ή διαγράφεται.
Για παράδειγμα, αν κινείται «transactions.txt» από το /home/james
να /home/james/personal
, ο σύνδεσμος «trans.txt» γίνεται σπασμένα. Κάθε προσπάθεια πρόσβασης στο αρχείο θα έχει ως αποτέλεσμα σφάλμα «Χωρίς τέτοιο αρχείο ή κατάλογο». Αυτό συμβαίνει επειδή ο σύνδεσμος δεν έχει δικό του περιεχόμενο.
Όταν ανακαλύψετε κατεστραμμένους συνδέσμους, μπορείτε εύκολα να διαγράψετε το αρχείο. Ένας εύκολος τρόπος για να βρείτε σπασμένα symlinks είναι:
find /home/james -xtype l
Αυτό θα εμφανίσει όλα τα σπασμένα symlinks στον james
κατάλογο - από αρχεία σε καταλόγους έως υποκαταλόγους.
Περνώντας την -delete
επιλογή θα διαγραφούν ως εξής:
find /home/james -xtype l -delete
Τυλίγοντας
Η συμβολική σύνδεση είναι ένα ενδιαφέρον χαρακτηριστικό των συστημάτων Linux και UNIX.
Μπορείτε να δημιουργήσετε εύκολα προσβάσιμους συνδέσμους για να αναφερθείτε σε ένα αρχείο ή φάκελο που διαφορετικά δεν θα ήταν βολικό στην πρόσβαση. Με κάποια πρακτική, θα καταλάβετε πώς λειτουργούν σε διαισθητικό επίπεδο και θα σας κάνουν πολύ πιο αποτελεσματικούς στη διαχείριση συστημάτων αρχείων.