Yanıtlar:
Her ikisi de, unlink()
sistem çağrısı olan aynı temel işleve bir sarıcıdır.
Kullanıcı yardımcı programları arasındaki farkları tartmak.
rm(1)
:
unlink(1)
:
rm(1)
Birden fazla argüman vermek ile karşılaştırıldığında daha yavaş .Farkı şununla gösterebilirsiniz:
$ touch $(seq 1 100)
$ unlink $(seq 1 100)
unlink: extra operand `2'
$ touch $(seq 1 100)
$ time rm $(seq 1 100)
real 0m0.048s
user 0m0.004s
sys 0m0.008s
$ touch $(seq 1 100)
$ time for i in $(seq 1 100); do rm $i; done
real 0m0.207s
user 0m0.044s
sys 0m0.112s
$ touch $(seq 1 100)
$ time for i in $(seq 1 100); do unlink $i; done
real 0m0.167s
user 0m0.048s
sys 0m0.120s
Bununla birlikte, sistem unlink(2)
işlevine yapılan kısaca yapılan bir çağrıdan bahsediyorsak , şimdi anladığım kadarıyla büyük olasılıkla sizin neden sorumlu olduğunuzu değil.
unlink()
Hem dizinler hem de dosyalar üzerinde bir sistem gerçekleştirebilirsiniz . Ancak, dizin diğer dizinlerin ve dosyaların bir ebeveyni ise, o ebeveynin bağlantısı kaldırılır, ancak çocuklar sarkmaya başlar. Hangisi idealden daha az.
Düzenle:
Üzgünüz, unlink(1)
ve arasındaki farkı netleştirdik unlink(2)
. Anlambilim hala platform arasında farklılık gösterecek.
mkdir -p 1/2/3; touch 1/one 1/2/two 1/2/3/three; rm -ri 1
. Ana dizinin bağlantısını kaldırırsanız, çocuklar tarafından tüketilen alan, fsck'in tutarsızlığı bulana kadar kaybedilir.