| kitten-transfer(1) | kitty | kitten-transfer(1) |
نام (NAME)
kitten-transfer - انتقال آسان فایلها از طریق دستگاه TTY
نمای کلی (OVERVIEW)
افزوده شده در نسخه 0.30.0.
انتقال فایلها به رایانههای دوردست و از آنها از طریق خود دستگاه TTY. این بدان معناست که انتقال فایل در نشستهای تو در توی SSH، پیوندهای سریال و غیره کار میکند. هر جا که یک دستگاه ترمینال داشته باشید، میتوانید فایلها را منتقل کنید.
این kitten از انتقال کل درخت دایرکتوری، حفظ پیوندهای نمادین و سخت، مجوزهای فایل، زمانها و غیره پشتیبانی میکند. حتی از پروتکل rsync https://en.wikipedia.org/wiki/Rsync برای انتقال تنها تغییرات فایلهای بزرگ پشتیبانی مینماید.
همچنین ببینید:
کاربرد اولیه (Basic usage)
کافی است با استفاده از ssh kitten <> به یک رایانه راه دور متصل شوید و این kitten را اجرا نمایید (که ssh kitten آن را به صورت خودکار در رایانه راه دور برای شما فراهم میکند). چند نمونه گویا در زیر آمده است. برای کپی کردن یک فایل از یک رایانه راه دور:
<local computer> $ kitten ssh my-remote-computer <remote computer> $ kitten transfer some-file /path/on/local/computer
این کار some-file را از رایانهای که به آن SSH زدهاید به رایانه محلی شما در مسیر /path/on/local/computer کپی میکند. kitty پیش از مجاز کردن انتقال از شما تاییدیه میخواهد تا از پروتکل انتقال فایل نتوان برای خواندن/نوشتن فایلها روی رایانه شما سوءاستفاده کرد.
برای کپی کردن یک فایل از رایانه محلی به رایانه راه دور:
<local computer> $ kitten ssh my-remote-computer <remote computer> $ kitten transfer --direction=upload /path/on/local/computer remote-file
برای نمونههای کاربردی با جزئیات بیشتر، بخش رابط خط فرمان در زیر را ببینید.
نکته:
جلوگیری از اعلان تایید (Avoiding the confirmation prompt)
به طور معمول، هنگامی که انتقال فایلی را آغاز میکنید kitty از شما درخواست تایید میکند. این کار برای اطمینان از این است که برنامههای متخاصم فعال روی رایانه دوردست نتوانند بدون اجازه شما فایلها را روی رایانه شما بخوانند یا بنویسند. اگر رایانه دوردست قابل اعتماد است، میتوانید اعلان تایید را به روشهای زیر غیرفعال کنید:
- 1.
- تنظیم گزینه file_transfer_confirmation_bypass <#opt-kitty.file_transfer_confirmation_bypass> روی یک گذرواژه مشخص.
- 2.
- هنگام فراخوانی kitten، استفاده از گزینه --permissions-bypass برای ارائه گذرواژهای که در مرحله اول تنظیم کردهاید.
هشدار:
انتقال دلتا (Delta transfers)
این kitten امکان استفاده از پروتکل rsync https://en.wikipedia.org/wiki/Rsync را دارد تا تنها تفاوتهای میان فایلها را منتقل کند. برای فعال کردن آن از گزینه --transmit-deltas استفاده کنید. توجه داشته باشید که به دلیل سربار رفتوبرگشت، این روش در انتقال فایلهای کوچک یا در شبکههای بسیار سریع در عمل کندتر خواهد بود، بنابراین با احتیاط استفاده شود.
کد منبع transfer
کد منبع این kitten در گیتهاب در دسترس است: https://github.com/kovidgoyal/kitty/tree/master/kittens/transfer.
رابط خط فرمان (Command line interface)
kitten transfer [options] source_files_or_directories destination_path
انتقال فایلها از طریق دستگاه TTY. به شرط وجود یک اتصال TTY میان دو رایانه (مانند بستر SSH)، میتواند برای ارسال فایلها بین آنها استفاده شود. از کپی فایلها، دایرکتوریها (به صورت بازگشتی)، پیوندهای نمادین و پیوندهای سخت پشتیبانی میکند. حتی میتواند از پروتکلی مشابه rsync برای کپی کردن تنها تغییرات میان فایلها بهره ببرد. هنگام کپی چند فایل، از گزینه --confirm-paths استفاده کنید تا ببینید دقیقاً چه مواردی کپی خواهند شد. سادهترین راه برای استفاده از این kitten این است که ابتدا با ssh kitten به رایانه دوردست متصل شوید:
$ kitten ssh my-remote-computer
سپس در رایانه دوردست، transfer kitten را برای انجام عملیات کپی اجرا نمایید. برای کپی یک فایل از رایانه دوردست به رایانه محلی، اجرا کنید:
$ kitten transfer remote-file /path/to/local-file
این دستور remote-file را از رایانه دوردست به /path/to/local-file در رایانه محلی کپی خواهد کرد.
به طور مشابه، برای کپی یک فایل از رایانه محلی به رایانه دوردست، اجرا کنید:
$ kitten transfer --direction=upload /path/to/local-file remote-file
این کار /path/to/local-file را از رایانه محلی به remote-file در رایانه دوردست کپی میکند.
چندین فایل را نیز میتوان کپی کرد:
$ kitten transfer file1 file2 /path/to/dir/
این دستور file1 و file2 را در دایرکتوری /path/to/dir/ در رایانه محلی قرار میدهد.
دایرکتوریها را نیز میتوان به صورت بازگشتی کپی نمود:
$ kitten transfer dir1 /path/to/dir/
این کار dir1 و تمام محتویات آن را درون /path/to/dir/ در رایانه محلی قرار میدهد.
توجه داشته باشید که هنگام کپی چندین فایل یا دایرکتوری، مقصد باید یک دایرکتوری موجود در رایانه گیرنده باشد. مسیرهای نسبی فایل نسبت به دایرکتوری جاری در رایانه اجراکننده kitten، و دایرکتوری خانگی (home) در رایانه دیگر حلوفصل میشوند. ایده خوبی است که از فلگ خط فرمان --confirm-paths استفاده کنید تا اطمینان یابید kitten همان فایلهایی را کپی میکند که مد نظر شماست.
گزینهها (OPTIONS)
- --direction <DIRECTION>, -d <DIRECTION>
- تعیین ارسال یا دریافت فایلها. مقادیر send یا download فایلها را از رایانهای که kitten روی آن در حال اجراست (معمولاً رایانه راه دور) به رایانه محلی کپی میکنند. مقادیر receive یا upload فایلها را از رایانه محلی به رایانه راه دور کپی مینمایند. پیشفرض: download انتخابها: download, receive, send, upload
- --mode <MODE>, -m <MODE>
- نحوه تفسیر آرگومانهای خط فرمان. در حالت mirror تمام آرگومانها فایلها/پوشههایی در رایانه فرستنده در نظر گرفته میشوند و در رایانه گیرنده آینهسازی (همگام) میشوند. فایلهای زیر دایرکتوری HOME در دایرکتوری HOME رایانه گیرنده کپی خواهند شد حتی اگر ساختار دایرکتوری HOME متفاوت باشد. در حالت normal آرگومان پایانی مسیر مقصد در رایانه گیرنده در نظر گرفته میشود. آرگومان آخر باید یک دایرکتوری موجود باشد، مگر در صورتی که یک فایل تکی کپی شود. زمانی که یک دایرکتوری است، باید با یک اسلش پایانی خاتمه یابد. پیشفرض: normal انتخابها: mirror, normal
- --compress <COMPRESS>
- تعیین فشردهسازی دادههای در حال ارسال. به طور پیشفرض فشردهسازی بر پایه نوع فایل ارسالی فعال است. برای فایلهایی که از قبل فشرده شناخته شوند، فشردهسازی غیرفعال میشود تا از هدررفت چرخههای پردازنده جلوگیری شود. پیشفرض: auto انتخابها: always, auto, never
- --permissions-bypass <PERMISSIONS_BYPASS>, -p <PERMISSIONS_BYPASS>
- گذرواژه مورد استفاده برای صرفنظر از پیام تایید انتقال در kitty. باید با گذرواژه تعیینشده برای گزینه file_transfer_confirmation_bypass <#opt-kitty.file_transfer_confirmation_bypass> در kitty.conf تطابق داشته باشد. توجه داشته باشید که فاصلههای ابتدا و انتهای گذرواژه حذف میشوند. گذرواژهای که با نویسههای .، / یا ~ آغاز شود، نام فایلی در نظر گرفته میشود که گذرواژه از آن خوانده خواهد شد. مقدار - به معنای خواندن گذرواژه از STDIN است. گذرواژهای که صرفاً عددی کمتر از ۲۵۶ باشد، شماره یک توصیفگر فایل در نظر گرفته میشود که گذرواژه واقعی باید از آن خوانده شود.
- --confirm-paths [=no], -c [=no]
- پیش از انتقال واقعی فایلها، نگاشتی از نام فایلهای محلی به نام فایلهای دوردست نمایش داده شده و درخواست تایید شود.
- --transmit-deltas [=no], -x [=no]
- در صورتی که فایل در سمت گیرنده از قبل موجود باشد، از الگوریتم rsync برای بهروزرسانی آن جهت انطباق با فایل سمت فرستنده استفاده شود؛ این کار پهنای باند زیادی را ذخیره کرده و انتقالهای ناتمام را به طور خودکار از سر میگیرد. توجه داشته باشید که این گزینه عملکرد را در پیوندهای پرسرعت یا فایلهای کوچک کاهش میدهد، بنابراین با احتیاط استفاده شود.
نویسنده (AUTHOR)
Kovid Goyal
حق نشر (COPYRIGHT)
2026, Kovid Goyal
| July 30, 2026 | 0.48.2 |