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 μπορεί να είναι ένας φάκελος, αλλά ασχολούμαστε μόνο με το όνομα.

Το κύριο πλεονέκτημα του rmover 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.

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