کپی کردن فایل در لینوکس

https://negarnovin.com/docs/how-to-copy-a-directory-in-linux/ · آخرین به‌روزرسانی: · نویسنده: نگارنوین · سایت: نگارنوین · 9 دقیقه مطالعه

📌 خلاصه (TL;DR)

کپی کردن فایل در لینوکس How to Copy a Directory in Linux یاد بگیرید چگونه دایرکتوری‌ها را در لینوکس با استفاده cp و rsync گام به گام

📊 حقایق کلیدی

URLhttps://negarnovin.com/docs/how-to-copy-a-directory-in-linux/
تاریخ انتشار2025-09-20
آخرین به‌روزرسانی2025-09-20
نویسندهنگارنوین
ناشرنگارنوین
زبانفارسی (fa-IR)
تعداد کلمات1753
نوع صفحهبرگه

📄 محتوای کامل

نحوه کپی کردن دایرکتوری در لینوکس یاد بگیرید که چگونه دایرکتوری‌ها را در لینوکس با استفاده از cp و rsync با مثال‌های گام به گام کپی کنید.

دایرکتوری یک ساختار سیستم فایل است که شامل فایل‌ها و دایرکتوری‌های دیگر می‌شود. دایرکتوری‌ها فایل‌ها را در یک ساختار سلسله مراتبی سازماندهی می‌کنند که به کاربران و سیستم‌های عامل در مدیریت داده‌ها کمک می‌کند. هر دایرکتوری می‌تواند شامل فایل‌ها و دایرکتوری‌های دیگر باشد که به آنها زیردایرکتوری نیز گفته می‌شود و یک ساختار درختی شکل با شاخه‌هایی که به سطوح مختلف داده‌ها منتهی می‌شوند، ایجاد می‌کند.

این مقاله نحوه کپی کردن یک دایرکتوری در لینوکس با استفاده از cpدستور و Rsync را توضیح می‌دهد.

پیش‌ نیازها

قبل از شروع، شما نیاز دارید:

  • به عنوان یک کاربر sudo غیر ریشه به یک نمونه مبتنی بر لینوکس دسترسی داشته باشید .

دستورات کپی کردن دایرکتوری‌ها در لینوکس

دستورات زیر برای کپی کردن دایرکتوری‌ها در لینوکس استفاده می‌شوند.

cpفرمان

دستور کپی cpبرای کپی کردن فایل‌ها و دایرکتوری‌ها در لینوکس استفاده می‌شود. دستور کپی در تمام توزیع‌های لینوکس موجود است و از سینتکس زیر پیروی می‌کند:

cp [OPTIONS]... [SOURCE] [DESTINATION]
  • OPTIONS: پرچم‌هایی که رفتار دستور را تغییر می‌دهند.
  • SOURCE: فایل یا دایرکتوری که می‌خواهید کپی کنید را مشخص می‌کند.
  • DESTINATION: مسیر دایرکتوری که می‌خواهید منبع را به آن کپی کنید یا نام فایلی که می‌خواهید یک فایل را کپی و تغییر نام دهید. cpاگر دایرکتوری مقصد وجود نداشته باشد، دستور به طور خودکار آن را ایجاد می‌کند.

cpگزینه‌های فرمان

گزینه‌هایی که می‌توانید با این cpدستور استفاده کنید، در زیر آمده است.

گزینه توضیحات
-rیا-R به صورت بازگشتی دایرکتوری‌ها و محتویات آنها را کپی می‌کند.
-a دایرکتوری‌ها را به صورت بازگشتی کپی می‌کند و پیوندهای نمادین، مجوزهای فایل، مالکیت‌ها و مهرهای زمانی را حفظ می‌کند.
-v فایل‌ها و دایرکتوری‌های در حال کپی شدن را نشان می‌دهد.
-p ویژگی‌های فایل مانند حالت، مالکیت و مهرهای زمانی را حفظ کنید.

برای کسب اطلاعات بیشتر در مورد cp، مقاله مفصل ما در مورد استفاده از cpدستور را بررسی کنید .

rsyncفرمان

این rsyncدستور، فایل‌ها و دایرکتوری‌ها را بین دو مکان، چه به صورت محلی و چه از راه دور، همگام‌سازی می‌کند. در زیر، سینتکس (نحوه نگارش) موارد استفاده مختلف آمده است. این دستور می‌تواند فایل‌ها را به صورت محلی و بین یک سیستم محلی و یک سیستم از راه دور کپی کند. Rsync با مقایسه مهرهای زمانی و اندازه فایل‌ها، تعیین می‌کند که چه چیزی باید کپی شود، و این آن را برای پشتیبان‌گیری و انتقال داده‌های در مقیاس بزرگ مناسب می‌کند.

  • کپی محلی
    rsync [OPTIONS]... [SOURCE_DIRECTORY]/ [DESTINATION_DIRECTORY]/
  • کپی محلی به راه دور
    rsync [OPTIONS]... [SOURCE_DIRECTORY]/ [USER@REMOTE_HOST]:[DESTINATION_DIRECTORY]/
  • کپی از راه دور به محلی
    rsync [OPTIONS]... [USER@REMOTE_HOST]:[SOURCE_DIRECTORY]/ [DESTINATION_DIRECTORY]/

توضیح نحو

  • OPTIONS: پرچم‌هایی که رفتار دستور را تغییر می‌دهند، مانند -a(حالت بایگانی را برای حفظ مجوزها و ویژگی‌ها فعال می‌کند)، -v (خروجی مفصل را نمایش می‌دهد)، یا -r(کپی بازگشتی را انجام می‌دهد).
  • SOURCE_DIRECTORY/: دایرکتوری که از آن کپی می‌شود. علامت اسلش ( /) محتویات دایرکتوری را کپی می‌کند، نه خود دایرکتوری را.
  • DESTINATION_DIRECTORY/: دایرکتوری مقصد برای کپی کردن محتویات. اگر وجود نداشته باشد، Rsync آن را ایجاد می‌کند.
  • USER@REMOTE_HOST: سیستم راه دور را با نام کاربری، نام میزبان یا آدرس IP برای انتقال‌های از راه دور مشخص می‌کند.

rsyncگزینه‌های فرمان

می‌توانید از گزینه‌های زیر به همراه rsyncدستور استفاده کنید.

گزینه توضیحات
-a حالت بایگانی را فعال می‌کند، که شامل کپی بازگشتی ( -r) است، پیوندهای نمادین، مجوزهای فایل، مهرهای زمانی، اطلاعات مالک و گروه را حفظ می‌کند.
-v خروجی دقیقی از فرآیند کپی را نشان می‌دهد.
-r دایرکتوری‌ها و محتویات آنها را کپی می‌کند.
-z فشرده‌سازی داده‌های فایل در حین انتقال برای کاهش استفاده از پهنای باند.

برای کسب اطلاعات بیشتر در مورد این دستور ، مقاله مفصل ما در مورد استفاده از rsync را بررسی کنید.

کپی کردن یک دایرکتوری با استفاده از cpدستور

در این بخش، شما یک ساختار دایرکتوری ایجاد خواهید کرد، فایل‌ها و محتوا را اضافه خواهید کرد و دایرکتوری‌ها را با استفاده از cpدستور و پرچم‌های مختلف کپی خواهید کرد.

  1. یک دایرکتوری جدید در دایرکتوری کاری فعلی خود ایجاد کنید. کنسولکپی
    $ mkdir sample
  2. به دایرکتوری ایجاد شده بروید. کنسولکپی
    $ cd sample
  3. یک فایل با نام ایجاد کنید file1.txt. کنسولکپی
    $ touch file1.txt
  4. محتوا را به file1.txtفایل اضافه کنید. کنسولکپی
    $ echo "This is a sample file in the main directory." > file1.txt
  5. یک زیرشاخه مانند folder1داخل sampleدایرکتوری ایجاد کنید. کنسولکپی
    $ mkdir folder1
  6. یک فایل داخلش ایجاد کن folder1. کنسولکپی
    $ touch folder1/file2.txt
  7. محتوا را به فایل اضافه کنید. کنسولکپی
    $ echo "This file is inside folder1." > folder1/file2.txt
  8. با استفاده از دستور، folder1آن را در دایرکتوری کپی کنید .folder1-backupcp کنسولکپی
    $ cp -r folder1 folder1-backup

    این -rگزینه کپی بازگشتی را فعال می‌کند، که تمام محتوای دایرکتوری نمونه را کپی می‌کند.

  9. برای تأیید کپی، محتوای دایرکتوری را فهرست کنید. کنسولکپی
    $ ls -R
  10. به دایرکتوری والد برگردید. کنسولکپی
    $ cd ..
  11. کل sampleدایرکتوری را در sample-copyدایرکتوری کپی کنید. کنسولکپی
    $ cp -r sample sample-copy
  12. sampleدایرکتوری را با استفاده از پرچم‌های -v‎ و ‎ کپی کنید -p. کنسولکپی
    $ cp -rvp sample sample-copy-rvp

    این دستور به صورت بازگشتی sampleدایرکتوری را به کپی می‌کند sample-copy-rvp، ویژگی‌های فایل را حفظ می‌کند و خروجی دقیقی را نمایش می‌دهد.

  13. sampleبا استفاده از پرچم، با استفاده از دایرکتوری کپی کنید -a. کنسولکپی
    $ cp -a sample sample-copy-a

    این دستور sampleدایرکتوری را sample-copy-aدر حالت بایگانی کپی می‌کند.

  14. با دستور زیر تأیید کنید که کپی‌ها وجود دارند و شامل ساختار صحیح هستند. کنسولکپی
    $ ls -l sample sample-copy sample-copy-rvp sample-copy-a

    این دستور هر دایرکتوری و محتویات آن را با جزئیات فهرست می‌کند.

    در خروجی، توجه کنید که sample-copyیک مهر زمانی جدیدتر دارد. این به این دلیل است که دستور کپی از پرچم‌های -por استفاده نکرده است -a. هر دو sample-copy-rvpو sample-copy-aمهرهای زمانی و مجوزهای اصلی را از فهرست نمونه حفظ کرده‌اند.

کپی کردن یک دایرکتوری با استفاده از Rsync

Rsync یک ابزار خط فرمان قدرتمند برای همگام‌سازی فایل‌ها و دایرکتوری‌ها است. این ابزار از Rsync پیشرفته‌تر cpو برای پشتیبان‌گیری، به‌روزرسانی‌های جزئی و انتقال داده‌های بزرگ مفیدتر است. برخلاف cp، rsync فقط تفاوت‌های بین دایرکتوری‌های مبدا و مقصد را کپی می‌کند که باعث صرفه‌جویی در زمان و پهنای باند می‌شود. برای کپی کردن دایرکتوری‌ها با استفاده از Rsync، مراحل زیر را دنبال کنید.

  1. Rsync به طور پیش‌فرض در اکثر توزیع‌های لینوکس نصب شده است. بررسی کنید که آیا در سیستم شما موجود است یا خیر. کنسولکپی
    $ rsync --version

    اگر Rsync وجود ندارد، برای نصب آن به مراحل نصب Rsync مراجعه کنید .

  2. مطمئن شوید که در دایرکتوری هستید که دایرکتوری نمونه در آن قرار دارد.
  3. sampleبرای تأیید ساختار آن، محتویات را مشاهده کنید . کنسولکپی
    $ ls -R sample
  4. با استفاده از Rsync، دایرکتوری را در یک دایرکتوری جدید کپی کنید sample. کنسولکپی
    $ rsync -av sample/ sample-rsync/

    این دستور محتویات دایرکتوری را sampleدر sample-rsync/حالت بایگانی کپی می‌کند، ویژگی‌های فایل را حفظ می‌کند و خروجی مفصل را نمایش می‌دهد.

  5. پس از کپی کردن، محتویات را بررسی کنید. کنسولکپی
    $ ls -R sample-rsync

    این دستور محتویات sample-rsyncدایرکتوری را فهرست می‌کند.

  6. یک فایل جدید به sampleدایرکتوری اضافه کنید. کنسولکپی
    $ echo "This is a new file." > sample/extra.txt

    این دستور فایلی ایجاد می‌کند که در دایرکتوری وجود ندارد sample-rsync.

  7. پیش‌نمایش تغییرات بدون اعمال آنها با استفاده از --dry-runپرچم. --dry-runپرچم در rsync بدون ایجاد هیچ تغییری در فایل‌ها یا دایرکتوری‌ها، اتفاقاتی را که در طول یک کپی رخ می‌دهد، شبیه‌سازی می‌کند. کنسولکپی
    $ rsync -av --dry-run sample/ sample-rsync/

    خروجی:

    sending incremental file list
    ./
    extra.txt
    
    sent 254 bytes  received 24 bytes  556.00 bytes/sec
    total size is 123  speedup is 0.44 (DRY RUN)
    توجه داشته باشید

    extra.txtدر خروجی ظاهر می‌شود زیرا جدید است و در sample-rsyncدایرکتوری نیست. Rsync تغییرات را شناسایی و فهرست می‌کند، در این مورد، فقط extra.txtفایل، و تغییرات را کپی می‌کند و انتقال را کارآمد می‌سازد.

  8. از rsync برای به‌روزرسانی sample-rsyncدایرکتوری و مشاهده‌ی پیشرفت انتقال فایل در لحظه با استفاده از --progressflag استفاده کنید. کنسولکپی
    $ rsync -av --progress sample/ sample-rsync/

    خروجی:

    sending incremental file list
    ./
    extra.txt
                20 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=5/7)
    
    sent 314 bytes  received 40 bytes  708.00 bytes/sec
    total size is 123  speedup is 0.35

    از خروجی، می‌توانید ببینید که Rsync فقط extra.txtفایل تازه ایجاد شده را کپی می‌کند.

  9. بررسی کنید که آیا فایل جدید در دایرکتوری کپی شده ظاهر می‌شود یا خیر. کنسولکپی
    $ ls -R sample-rsync
  10. حذف یک فایل از sampleدایرکتوری. کنسولکپی
    $ rm sample/extra.txt
  11. --deleteاز این پرچم برای حذف فایل‌هایی sample-rsyncکه دیگر در … وجود ندارند استفاده کنید sample. Rsync با حذف فایل، مقصد را به‌روزرسانی می‌کند. کنسولکپی
    $ rsync -av --delete sample/ sample-rsync-copy/
  12. با اجرای دستور زیر، تأیید کنید که هر دو دایرکتوری همگام‌سازی شده‌اند. کنسولکپی
    $ ls -l sample sample-rsync

    خروجی:

    sample:
    total 12
    -rw-rw-r-- 1 user user   45 May  7 06:06 file1.txt
    drwxrwxr-x 2 user user 4096 May  7 06:06 folder1
    drwxrwxr-x 2 user user 4096 May  7 06:07 folder1-backup
    
    sample-rsync:
    total 12
    -rw-rw-r-- 1 user user   45 May  7 06:06 file1.txt
    drwxrwxr-x 2 user user 4096 May  7 06:06 folder1
    drwxrwxr-x 2 user user 4096 May  7 06:07 folder1-backup

    می‌توانید ببینید که extra.txtاز هر دو دایرکتوری حذف شده است و بقیه ساختار بدون تغییر باقی مانده است.

نتیجه‌گیری

شما با استفاده از دستور و Rsync دایرکتوری‌ها را در لینوکس کپی کرده‌اید cp. می‌توانید از این دستورات بر اساس موارد استفاده خود استفاده کنید. برای گزینه‌های بیشتر دستور، man cpدستور را برای مشاهده cpصفحه راهنما و man rsyncدستور را برای مشاهده صفحه راهنمای Rsync اجرا کنید.

🏷️ کلمات کلیدی

کپی کردن فایل در لینوکس، نحوه کپی کردن دایرکتوری در لینوکس، پیش‌ نیازها، دستورات کپی کردن دایرکتوری‌ها در لینوکس، خرید کپی کردن فایل در لینوکس، قیمت کپی کردن فایل در لینوکس، بهترین کپی کردن فایل در لینوکس

🧩 JSON-LD

{"@context":"https://schema.org","@type":"WebPage","headline":"کپی کردن فایل در لینوکس","url":"https://negarnovin.com/docs/how-to-copy-a-directory-in-linux/","datePublished":"2025-09-20T10:10:06+03:30","dateModified":"2025-09-20T10:10:06+03:30","author":{"@type":"Person","name":"نگارنوین"},"publisher":{"@type":"Organization","name":"نگارنوین"},"inLanguage":"fa-IR","description":"کپی کردن فایل در لینوکس How to Copy a Directory in Linux یاد بگیرید چگونه دایرکتوری‌ها را در لینوکس با استفاده cp و rsync گام به گام"}