Περισσότερα
Αφαίρεση ενός συνδέσμου συμβόλων σε έναν κατάλογο
Έχω έναν συμβολικό σύνδεσμο σε έναν σημαντικό κατάλογο. Θέλω να απαλλαγώ από αυτό το symlink, διατηρώντας παράλληλα τον κατάλογο πίσω από αυτό.
Δοκίμασα το rm
και παίρνω πίσω rm: cannot remove 'foo'
.
Δοκίμασα το rmdir
και πήρα πίσω rmdir: failed to remove 'foo': Directory not empty
Στη συνέχεια προχώρησα με τα rm -f
, rm -rf
και sudo rm -rf
.
Στη συνέχεια πήγα να βρω τα αντίγραφα ασφαλείας μου.
Υπάρχει τρόπος να απαλλαγούμε από το symlink χωρίς να πετάξουμε το μωρό μαζί με το νερό της μπανιέρας;
1061
3
Βασικά, πρέπει να του πείτε να διαγράψει ένα αρχείο, όχι να διαγράψει έναν κατάλογο. Πιστεύω ότι η διαφορά μεταξύ
rm
καιrmdir
υπάρχει λόγω των διαφορών στον τρόπο που η βιβλιοθήκη της C αντιμετωπίζει το καθένα.Σε κάθε περίπτωση, το πρώτο θα πρέπει να δουλέψει, ενώ το δεύτερο θα πρέπει να παραπονεθεί ότι το foo είναι κατάλογος.
Αν δεν λειτουργεί όπως παραπάνω, τότε ελέγξτε τα δικαιώματά σας. Χρειάζεστε δικαίωμα εγγραφής στον κατάλογο που περιέχει τα αρχεία για να τα αφαιρέσετε.
χρησιμοποιήστε την εντολή "unlink" και βεβαιωθείτε ότι δεν έχετε το / στο τέλος
Νομίζω ότι αυτό μπορεί να είναι προβληματικό αν το διαβάζω σωστά.
**Αν το όνομα αναφερόταν σε συμβολικό σύνδεσμο, ο σύνδεσμος καταργείται.
https://linux.die.net/man/2/unlink
Αν η rm δεν μπορεί να αφαιρέσει έναν συμβολικό σύνδεσμο, ίσως πρέπει να εξετάσετε τα δικαιώματα στον κατάλογο που περιέχει τον συμβολικό σύνδεσμο. Για να αφαιρέσετε καταχωρήσεις καταλόγου, χρειάζεστε δικαίωμα εγγραφής στον κατάλογο που τον περιέχει.