Bash komut dosyası içeren bir dosyayı neden silemiyorum?


1

rmBash komut dosyasından çalıştırıp bir dosyayı kaldıramıyor gibiyim.

#!/bin/bash
rm -rf myjunk.out
exit 0;

kaldırmaz myjunk.out.


1
Kurtul exit 0ve hata mesajlarını kontrol et.
ChrisF

Ve sadece rm -rf myjunk.outkomut satırından çalıştırdığınızda işe yarıyor mu? Bu betiğin yürütülmesini tetikleyen nedir?
BloodPhilia

2
Sadece kayıt için, -r dizinlere (Recursive) inmek anlamına gelir, bu nedenle eğer bir dosyayı kaldırmak istiyorsanız, -r boşunadır. Hangi hatayı alıyorsun ? Bu betiği nasıl çalıştırıyorsunuz? Bu betiğin izinleri nelerdir?
Torian

@BloodPhilla tetiklendi çünkü myjunk.out komut dosyasında daha önce oluşturuldu .... @Torian -r oradaydı çünkü sadece bir şeyler
deniyordum

Yanıtlar:


4

Öncelikle, betiğinizi çalıştırmadan myjunk.out dosyasını sildiğinizden emin olun ; değilse, dosya özniteliğini kontrol edin lsattr.

İkincisi, sağlamanız gerekmez exit 0;

Daha sonra, örneğin, myjunk.out yolunu işaretleyin :

rm -rf /path/to/myjunk.out

Ayrıca -rbayrağını da çıkarın . Gereksiz ve tehlikelidir.
Keith,

Aslında 0 çıkışını çıkarmak; rm yüklü izin verilmiş.out düzgün çalışması için. Teşekkürler!
CamelBlues

Bunun açıklaması nedir: "Çıkış 0" neden rm'nin çalışmamasına neden
Emmanuel Devaux

0

-fOpsiyon hata mesajları engeller. Man sayfa diyor ki:

Dosyanın izinlerinden bağımsız olarak onay istemeden dosyaları kaldırmayı deneyin. Dosya yoksa, bir tanılama mesajı görüntülemeyin veya bir hatayı yansıtacak şekilde çıkış durumunu değiştirin. Bu -fseçenek, önceki tüm -iseçenekleri geçersiz kılar .

İlgili olan kısmı vurguladım; değerli uyarılar almak için, seçenek bayraklarını rmkomutunuzdan kaldırmalısınız :

rm myjunk.out

Bu bir cevaptan çok bir yorumdur.
Chenmunka
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.