Bagaimana cara menghapus tautan simbolis ke direktori?


100

Saya membuat tautan simbolis dengan perintah berikut:

ln -s ../test5

Saya ingin menghapusnya sekarang tetapi rm saya gagal:

$ rm -Rf test5/
rm: cannot remove `test5/': Not a directory
$ rm test5/
rm: cannot remove directory `test5/': Is a directory
$ rmdir test5/
rmdir: test5/: Not a directory
$rm -r test5/
rm: cannot remove `test5/': Not a directory

$ls -l
 0 lrwxrwxrwx  1 peter peter    8 Jul 20 15:30 test5 -> ../test5/

Bagaimana saya bisa menghapus tautan simbolis saya? (Ubuntu 8.10, bash)


4
TIP: rm -r link/menghapus konten pada target
Gayan Weerakutti

Jawaban:


121

Hapus garis miring trailing:

Dengan cepat:

$ rm test5

Tanpa cepat:

$ rm -f test5


Dikatakan permission denied.
1,21 gigawatt

1
Tanpa garis miring. Jadi test5/tidak benar.
pylover

20

Coba rm test5
(tanpa garis miring pelatihan).

Slash menunjukkan bahwa 'test5' adalah mengerikan sedangkan sebenarnya file yang terhubung ke direktori.


14

Anda dapat menjalankan menghapus garis miring:

$ rm test5

Ini akan menghapus file (yaitu symlink).

Atau Anda dapat menggunakan pembatalan tautan:

$ unlink test5

Sekali lagi Anda harus menghilangkan garis miring trailing karena Anda berusaha untuk menghapus tautan symlink bukan direktori.


0

Terkadang jika Anda menggunakan pelengkapan otomatis untuk memberi nama tautan yang ingin Anda hapus, Anda mungkin tidak melihat garis miring tetapi itu 'separuh di sana' dan garis miring yang tak terlihat itu masih memberikan kesalahan penghapusan ketika mencoba menghapus tautan itu.

Jadi dalam hal ini ketik karakter dengan karakter tautan yang akan dihapus sebagai "test5" seperti misalnya. rm test5.


1
Belum pernah mendengar tentang tebasan tak terlihat. Shell apa yang melakukan ini?
Kamil Maciorowski

Saya pikir itu mungkin referensi ke karakter yang disembunyikan oleh linewrap + kursor?
bertieb

0

Masalah dalam OP adalah trailing /, jadi test5/melempar kesalahan tetapi test5berfungsi.

Saya lebih suka menggunakan unlinkdaripada rmkarena maksud saya lebih jelas dan tidak ada kemungkinan salah menghapus direktori sebenarnya daripada tautannya. Pastikan tidak ada trailing /setelah nama direktori, misalnya:

unlink test5

-1

Saya merasa konyol bertanya, tetapi apakah Anda sudah mencoba rm -r? Karena ini adalah tautan simbolis, ia tidak boleh menghapus target.

Sunting: Baru saja mencobanya, itu benar

Sunting 2: rmdir mengatakan di baris pertama halaman manualnya ia menghapus direktori kosong. Saya akan berpikir karena itu adalah sebuah tautan yang memiliki sedikit direktori diperiksa pada properti file-nya, tetapi karena rmdir tidak curiga bahwa itu adalah kasus itu meludah kesalahan. Cukup gunakan rm -r


2
Ini akan meminta saya untuk menghapus file dalam direktori, bukan itu yang saya inginkan, saya ingin menghapus hanya link
Peter Smit

Pertanyaan itu karena interaktif didefinisikan dalam profil saya. Menambahkan respons ke rm -r. Itu masih tidak berhasil.
Peter Smit

Anda meninggalkan jejak '/' itu sebabnya gagal
bobby
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.