COPYFILERANGE(1) أوامر المستخدم COPYFILERANGE(1)

copyfilerange - نسخ نطاق (أو نطاقات) من المصدر إلى ملف الوجهة

copyfilerange [خيارات] source destination range...

ينسخ الأمر copyfilerange نطاقات البايت من المصدر إلى ملف الوجهة. وهو عبارة عن غلاف حول استدعاء النظام ‎copy_file_range(2)‎.

يمكن استخدام الأمر لإنشاء ملفات ذات فجوات غير مخصصة (ملفات متفرقة) و/أو بكتل مشتركة بين ملفات متعددة (reflinks).

كل نطاق range يكون على الشكل التالي: source_offset:destination_offset:length، مع التعبير عن كافة القيم بالبايت. إذا كان الطول length هو 0، تُنسخ أكبر قدر ممكن من البيانات المتاحة. يمكن تقديم نطاقات متعددة.

عند حذف إزاحة واحدة أو كلتيهما، تستخدم العملية موقع الملف المستخدم آخراً، بدءاً من 0.

-r, --ranges file

يقرأ النطاق (أو النطاقات) المفصولة بأسطر جديدة من هذا الملف file.

-v، --verbose

مخرجات مسهبة للنطاقات المنسوخة.

-h، --help

اعرض نص المساعدة ثم اخرج.

-V، --version

اعرض الإصدار واخرج.

0

نجاح

1

فشل غير محدد

يحتوي استدعاء النظام ‎copy_file_range(2)‎ على بعض المحاذير الجدية: يجب أن يستخدم ملف المصدر والوجهة نفس نوع نظام الملفات، وبعض أنظمة الملفات الافتراضية (مثل procfs) لن تعمل. سيستخدم ‎copy_file_range(2)‎ روابط المراجع (reflinks) عندما يدعم نظام الملفات ذلك. لاستخدام روابط المراجع، يحتاج نطاق الملف في الغالب إلى المحاذاة مع حجم كتلة نظام الملفات في كل من ملف المصدر والوجهة.

Dick Marinus <dick@mrns.nl>

copyfilerange original-file reflink ::
copyfilerange original-file first-block ::4096
copyfilerange original-file even-blocks -r <(seq 0 8192 40960|awk '{print $1"::4096"}')
copyfilerange original-file sparse-file 0:1M:1
copyfilerange original-file split-first-mb ::1M
copyfilerange original-file split-remainder 1M::
copyfilerange split-first-mb join ::
copyfilerange split-remainder join :1M:

copy_file_range(2)

لتقارير العِلل، استخدم مُتتبع المشكلات https://github.com/util-linux/util-linux/issues.

الأمر copyfilerange جزء من حزمة util-linux التي يمكن تنزيلها من أرشيف نواة لينكس https://www.kernel.org/pub/linux/utils/util-linux/.

2026-09-02 util-linux 2.42.3