سؤال
فعلت التالية:
nohup find / &
rm nohup.out
الغريب nohup -القيادة استمرت في تشغيل.أنا ينتظر جديد الملف الذي تم إنشاؤه.بالنسبة لي مفاجأة لم يكن هناك مثل هذا الملف.حيث لم المعياري الأمر الذهاب ؟
المحلول
إزالة ملف في يونيكس يفعل شيئين:
- يزيل إدخال الدليل لذلك.
- إذا لم يكن لدى أي عمليات مفتوحة ولا تشير أي إدخالات دليل أخرى إلى ذلك (روابط صلبة)، فهي تطلق المساحة.
ستواصل عملية No'uppled الخاصة بك بكل سرور الكتابة إلى الملف الذي كان يسمى Nohup.out، ولكن يعرف الآن أنه لا شيء سوى واصف الملفات ضمن هذه العملية.
يمكنك حتى الحصول على عملية أخرى إنشاء Nohup.out، لن تتداخل مع الأول.
عند رحيل جميع الروابط الصلبة، وكل العمليات التي أغلقتها، سيتم استرداد مساحة القرص.
نصائح أخرى
إذا كنت سوف تحذف nohup.out
ملف، سيتم فقد المقبض وسوف يكتب فقط على واصف الملف ولكن إذا كنت ترغب في تنظيف nohup.out
ملف ثم تشغيل هذا فقط
true > nohup.out
سوف يحذف محتويات الملف ولكن ليس الملف.
هذا هو معيار السلوك على Unix.
عند إزالة ملف الحلقة الأخيرة في نظام الملفات تم إزالتها ولكن الملف ما زال مفتوحا وبالتالي إخراج find
(في هذه الحالة) كانت مكتوبة إلى القرص كتل في نواة تجمع المخزن المؤقت ، وربما حتى إلى القرص.ولكن الملف لا اسم.عندما find
وخرجت ، أي عملية أو ملف (inode) المشار إليها الملف ، لذا الفضاء صدر.هذا هو أحد السبل التي الملفات المؤقتة التي سوف تختفي عند إنهاء البرنامج يتم إنشاء طريق فتح الملف ومن ثم إزالته.(هذا يعني أنك لا تحتاج إلى اسم الملف.ومن الواضح أنه إذا كنت في حاجة الى اسم مؤقت, هذه التقنية لن تعمل.)
cat /dev/null > nohup.out
من هنا