Yanıtlar:
Normal yollarla silinemeyen dosyalara gelince, neredeyse nihai çözüm:
ls -il
İlk sütun, dosyaların inode sayısını gösterir.
find . -inum [inode-number] -exec rm -i {} \;
Bu, doğrulama sonrasında belirtilen inode numaralı dosyayı siler.
-deleteyerine cevabınızı değiştirdim -exec, sonra kullandığınızı anladım ki rm -ibu iyi bir fikirdi, ben de geri aldım. Üzgünüm.
Bu dosyaya ~/~(tırnak işaretleri olmadan) başvurabilmelisiniz çünkü tilde genişlemesi sadece tilde ( ~) sözcüğün en başında uygulanır.
rm ./~de aynı nedenle
./~Kelimenin tam anlamıyla " ~geçerli dizinde adı verilen bir dosya veya klasör" anlamına geldiğinden , diğer yanıtlara kıyasla "en iyi" ve en basit çözüm olarak kabul ediyorum . Kaçış karakterleri veya inode referansları gibi hack yok.
./~. Beş yıl sonra hafızam biraz bulanık, ancak bu yüzden ~/~normalden çok önermemin sebebi bu ./~: “Özellikle ~[OP's] ana dizinde yer alan bir dosya ”; "geçerli dizinde" değil.
Alıntı yap ( rm '~') veya kaçış ( rm \~).
Daima bunlardan biri (örneğin $, örneğin ) veya --dosya adının argüman olarak yorumlanmasını önlemek için ekleyin : rm -- -iadlandırılmış dosyayı kaldırır -i; rm -- *Geçerli dizindeki tüm dosyaları silmek istediğinizde de kullanışlıdır : Yanlışlıkla rm -f *bir dosya böyle adlandırıldığından yanlışlıkla .
--sadece aşağıdaki argümanların parametre olarak yorumlanmasını durdurur - kabuğun *burada olanı genişletmesini (örn. ) gerçekleştirmesini engellemez . (Diğer durumlar için bir alternatif olarak önerdiğini biliyorum, ama bir uyarı iyi olurdu.)