Geçerli dizini kaldırmak, dosya sistemi bütünlüğünü veya mantıksal organizasyonunu etkilemez. .
Kaldırma önlenmesi , rmdir(2)
kılavuz sayfasında belirtilen POSIX standardını takip etmek için yapılır :
Path argümanı, son bileşeni nokta ya da nokta-nokta olan bir yola atıfta bulunursa, rmdir () başarısız olur.
Bir mantık rm
manuel sayfada bulunabilir:
Rm yardımcı programının yanlışlıkla yapılan bir işlemin sonuçlarından kaçınmak için nokta ve nokta nokta adlarını çıkarması yasaktır:
rm -r. *
Öte yandan, geçerli dizinin açıkça kaldırılması (yani, tam veya göreceli yolunun belirtilmesiyle), Unix altında, en azından Unix sürüm 7 ile SVR2'ye kadar yasaklandığı için SVR3'ten beri izin verilen bir işlemdir. Bu, aktif olarak okunmakta veya yazılmakta olan bir dosyayı kaldırdığınızda ne olduğuna benzer. Silme dosyasına erişen işlemler, hiçbir şey olmamış gibi, okuma ve yazma işlemlerine devam eder. Bir işlemin geçerli dizinini kaldırdıktan sonra, bu dizin yolu erişilebilir olmasına rağmen erişilemez, ancak düğümü, işlem kendi dizinini değiştirene ya da değiştirene kadar dosya sisteminde kalır.
İşlemin şu anki dizininde cd ..
bir ..
giriş olmadığından cwd'yi (örn. ) Değiştirmek için mevcut dizinine göre bir yol kullanamayacağına dikkat edin .
Birisi tip zaman rmdir .
, muhtemelen geçerli dizin girdisi kaldırılacak bekliyoruz ama bir dizin kaldırıldığında (yolunu kullanarak), üç dizin girişleri aslında kaldırılır .
, ..
ve dizini kendisini.
Yalnızca .
bu yöneticinin dizin girişini kaldırmak değil, uyumlu olmayan bir dizin oluşturur, ancak önceden belirtildiği gibi, standart tarafından yasaklanmıştır.
@Emmanuel haklı olarak işaret ettiği gibi, kaldırmaya .
izin verilmemesinin ikinci bir nedeni var . Güçlü kısıtlamalarla mevcut dizinlere sabit bağlantılar oluşturmayı destekleyen en az bir POSIX uyumlu işletim sistemi (HFS + ile Mac OS X) vardır. Bu durumda, hangi hardlink'in kaldırılması beklenen olduğunu bilmek için dizin içinden net bir yol yoktur.