COPYFILERANGE(1) دستورهای کاربری COPYFILERANGE(1)

copyfilerange - کپی برشی از یک فایل به فایل دیگر با استفاده از فراخوان copy_file_range

copyfilerange [options] source destination range...

دستور copyfilerange محدوده‌های بایتی را از پرونده مبدأ به پرونده مقصد کپی می‌کند. این دستور یک پوسته برای فراخوان سیستمی copy_file_range(2) است.

این دستور می‌تواند برای ایجاد پرونده‌هایی با شکاف‌های تخصیص‌نیافته (پرونده‌های پراکنده یا sparse) و/یا با بلوک‌های اشتراکی میان چندین پرونده (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) در صورت پشتیبانی سیستم پرونده از reflinkها استفاده خواهد کرد. برای استفاده از reflinkها، در اغلب موارد محدوده پرونده باید با اندازه بلوک سیستم پرونده در هر دو پرونده مبدأ و مقصد هم‌تراز باشد.

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