Saya memiliki tautan simbolis ~/Desktop/test.txt
yang menunjuk ke ~/rendu/test.txt
.
Saya HANYA mengetahui jalur ~/Desktop/test.txt
, saya ingin cara cepat untuk menghapus ~/rendu/test.txt
TANPA menghapus tautan simbolis.
Untuk yang ingin tahu alasannya: Saya memiliki file bernama crypted.xxx
di desktop saya, yang dienkripsi dan berisi kata sandi saya.
Ketika saya ingin memperbarui file terenkripsi saya, saya mendekripsi dan membuatnya crypted.txt
di direktori khusus. Jadi saya membuat tautan ke file itu di desktop saya untuk alasan praktis. Tetapi setelah melihat saya crypted.txt
, saya ingin menghapus ini dengan cepat crypted.txt
(tetapi bukan tautan di desktop).
command-line
delete
symbolic-link
Ugo Hed
sumber
sumber
Jawaban:
gunakan
find
untuk menemukan symlink dan kemudian gunakanreadlink
untuk mendapatkan path lengkap ke target kerm
:Atau seperti yang Anda ketahui nama tautannya:
sumber
rm
perintah Anda akan menafsirkannya relatif terhadap direktori shell saat ini. Oleh karena itu ada kemungkinan untuk perintah itu untuk menghapus file yang berbeda dari apa yang ditunjukkan oleh tautan simbolik.-f
-e
atau-m
path lengkap dikembalikan, bahkan jika target symlink menunjuk ke path relatif, jadi ya, itu adalah masalah jikarm "$(readlink ~/Desktop/test.txt)"
, tetapi tidak ketika menggunakan-f
-e
atau-m
.readlink -f
(tetapi juga berfungsi jika target itu sendiri bukan tautan).Cukup gunakan:
untuk menghapus file, atau
untuk menghapus file.
sumber