Linux Dosya Silmek
-
hemen bir düzeltme yapalım.
bir önceki mesajda calıstırılan komut, buradaki örnekte "wpanel" icerisindeki dosyaları da siliyor, dizinleri bırakıyor ama bizim istedigimiz asıl dizin icerisinde sadece wpanel'in ve onun icerisindeki bütün dosya ve dizinlerin kalarak, kalan dosyaların silinmesiydi, o yüzden komutu su sekilde degistirdim :
find -maxdepth 1 -type f -not -name wpanel -exec rm -ir {} \;
mürid iyi ki snapshot almıs yoksa restore ile ugrasacaktık :l
-
rm -rf *.* !(klasör yada dosya ismi)
En rahat aslında bu. -
Mr_Dark bunu yazdı
rm -rf *.* !(klasör yada dosya ismi)
En rahat aslında bu.hocam onu da denedim olmamıştı
-
Mr_Dark bunu yazdı
rm -rf *.* !(klasör yada dosya ismi)
En rahat aslında bu.ilk yazdıgım komut bunun da kısa haliydi zaten, aynı mantıkta rm !(wpanel) de aynı isi görecekti ama kullanılan bash, ünlem isaretini regex yorumlar gibi algıladı, özel karakter olarak görmesin diye kacıs karakterini denettirdim onda da hata oldu.
rm '!'(wpanel) veya rm "!"(wpanel) seklinde de denemek lazım aslında. @black kendi olusturacagın bos bir dosyayı yine bu komutlarla silmeyi denesene merak ettim ne diyecek.
onlarda da hata olursa, muhtemelen shell script olarak calıstırılsa bu sefer sorun cıkarmayacak.
-
buyrun sonuçlar:
[root@VPS deneme]# ls deneme1 index2.php index3.php index.php [root@VPS deneme]# rm '!'(deneme1) -bash: syntax error near unexpected token `(' [root@VPS deneme]# rm "!"(deneme1) -bash: !: event not found [root@VPS deneme]# rm -rf *.* !(deneme1) -bash: !: event not found [root@VPS deneme]# ls deneme1 index2.php index3.php index.php
myblackworldweb tarafından 01/Şub/15 03:03 tarihinde düzenlenmiştir -
myblackworldweb bunu yazdı
buyrun sonuçlar:
[root@VPS deneme]# ls deneme1 index2.php index3.php index.php [root@VPS deneme]# rm '!'(deneme1) -bash: syntax error near unexpected token `(' [root@VPS deneme]# rm "!"(deneme1) -bash: !: event not found [root@VPS deneme]# rm -rf *.* !(deneme1) -bash: !: event not found [root@VPS deneme]# ls deneme1 index2.php index3.php index.php
shopt -s extglob rm *.* !(deneme)
MaviEkran tarafından 01/Şub/15 03:28 tarihinde düzenlenmiştir -
Geç kalmışım ama olsun bilgilendirmek isterim;
1) Hacı abi niye uğraşıyorsun yedeklemek istediğin dosyayı al ordan kopyala bir yere izinleriyle birlikte sonra herşeyi sil sonra geri yapıştır :))))2) find . -type f -not -name 'wpanel' -delete
Bu optimum çözümdür , Linuxte her zaman tek komut ile işleri yürütmeyi tercih etmelisin...
Devam ettirip türettirmek istersen;
3) find . -type f -not -name 'wpanel' -exec rm {} \;
4) GLOBIGNORE='wpanel'; rm *
5)
find . | grep -v "wpanel" | xargs rm
6) shopt -s extglob ; rm !(wpanel)
Extended Pattern Matching ile !() i tanımasını sağlamazsanız çalışmaz....
7) Ama ne biliyim onu ben anlama o işten dersende şu komutu yazmalıydın,
Bulunduğun dizinde;
rm [!wpanel]*
rm silme dizisinden wpanel i çıkartarak herşeyi sil gibi birşey oluyor.
Umarım yeterli olur, anlamadığın komutun mantığınıda anlatabilirim...
-
deneme klasörünü ziple indiir. sonra hepsini sil alala :)
-
Arkadaşlar çok sağolun.
klasörün içinde önemli dosyalar var. silinmemesi ve uzun süreli aksamaması lazım. çünkü sunucudaki siteler o dosyanın içinde.
o yüzden böyle maceralara girdik.
sorun çözüldü nihayetinde