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)

Peter Smit
sumber
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

Swanand
sumber
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.

pelms
sumber
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.

Callum
sumber
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.

pengguna872812
sumber
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
isapir
sumber
-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

polisi
sumber
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