“-D” adlı bir dosyadan kurtulma [çoğalt]


18

Olası Çoğaltmalar:
"-p" adlı bir dosyayı bash'tan nasıl silerim? Linux'da
bu ada sahip bir dosya nasıl silinir: -] ??????? q
`-rf` adlı bir dosyayı kaldırmak için hangi komutu kullanmam gerekir?

Yanlışlıkla: -d adlı bir dosya oluşturdum

Kaldırmak için tek ve çift tırnak işaretleri yanı sıra joker kartları kullanarak denedim ama her zaman "rm" bana bu hata veriyor:

Uyarı: --dizin (-d) seçeneği belgelenmemiş ve işlem yok. Boş olmayan dizinleri silmek için -rf kullanın rm: eksik işlenen Daha fazla bilgi için rm --help komutunu deneyin.

Dosyadan nasıl kurtulurum?

Yanıtlar:


44
rm -- -d

--"seçeneklerin sonu" anlamına gelir. Bunu izleyen komut satırındaki her şey bir seçenek olarak değil, bir argüman olarak (örn. Durumunuzdaki dosya adı) yorumlanır.



8

Bu özel durumda '-' kullanmak açık ara en kolay olanıdır. Ancak, yazdırılamayan kontrol karakterlerine sahip bir dosyaya rastlarsanız daha genel bir çözüm, dosyaya inode ile başvurmaktır:

% ls -ali aFileWithFunnyCharacters
      9215 -rw-r-----   1 chris  chris         0 Sep  8 16:55 aFileWithFunnyCharacters
% find . -xdev -inum 9215 -exec rm {} \;
% ls -ali aFileWithFunnyCharacters
aFileWithFunnyCharacters: No such file or directory

0

Gnu-find'ın -delete seçeneği vardır:

find -name "-d" -delete

başka deneyebilirsin

find -name "-d" -exec rm {} ";" 

ancak - yukarıdan çözüm daha kısadır ve bayrakların yorumlanmasını durdurmanın yolu - getopt kütüphanesini kullanarak birçok program tarafından kullanılır, bu yüzden öğrenmek genel olarak yararlı bir şeydir.

Ancak find / -delete de öğrenmesi çok yararlı bir şeydir. Her iki örneğin de, "-d" adındaki dosyaları yinelemeli olarak sileceğini unutmayın; bu, çok sık gerçekleşmeyebilir, ancak "-d" adında bir dosyanız varsa, bunlardan daha fazlasına sahip olabilirsiniz. :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.