كتيبات سطر الأوامر

Man » دليل ftp عبر الإنترنت - وثائق مفصلة عبر الإنترنت لصفحة دليل ftp

🌍
tnftp — برنامج نقل الملفات عبر الإنترنت

الملخص

tnftp [-46AadefginpRtVv?] [-N netrc] [-o output] [-P port] [-q quittime] [-r retry] [-s srcaddr]
[-T dir,max[,inc]] [-x xfersize] [[user@]host [port]] [[user@]host:[path][/]]
[file:///path] [ftp://[user[:password]@]host[:port]/path[/][;type=type]]
[http://[user[:password]@]host[:port]/path] [https://[user[:password]@]host[:port]/path]
...
tnftp -u url file ...

الوصف

tnftp هو الواجهة للمستخدم لبروتوكول نقل الملفات القياسي عبر الإنترنت. يسمح البرنامج للمستخدم بنقل الملفات من وإلى موقع شبكة بعيد.

ستقوم الحجج الخمس الأخيرة بجلب ملف باستخدام بروتوكولي FTP أو HTTP، أو عن طريق النسخ المباشر، إلى الدليل الحالي. هذا مثالي للبرامج النصية. راجع قسم "جلب الملفات تلقائيًا" أدناه للحصول على مزيد من المعلومات.

يمكن تحديد الخيارات في سطر الأوامر، أو إلى مفسر الأوامر.

-4 يجبر tnftp على استخدام عناوين IPv4 فقط.

-6 يجبر tnftp على استخدام عناوين IPv6 فقط.

-A يجبر على استخدام وضع FTP النشط. بشكل افتراضي، سيحاول tnftp استخدام وضع FTP السلبي وسيتحول إلى الوضع النشط إذا لم يكن الوضع السلبي مدعومًا من قبل الخادم. يتسبب هذا الخيار في أن يستخدم tnftp دائمًا اتصالاً نشطًا. إنه مفيد فقط للاتصال بخوادم قديمة جدًا لا تنفذ وضعًا سلبيًا بشكل صحيح.

-a يتسبب في أن يتجاوز tnftp إجراء تسجيل الدخول العادي، ويستخدم تسجيل دخول مجهول بدلاً من ذلك.

-d يمكّن التصحيح.

-e يعطل تحرير سطر الأوامر. هذا مفيد لوضع ange-ftp الخاص بـ Emacs.

-f يجبر على إعادة تحميل ذاكرة التخزين المؤقت للعمليات النقل التي تمر عبر وكلاء FTP أو HTTP.

-g يعطل تجميع أسماء الملفات.

-i يعطل المطالبات التفاعلية أثناء عمليات النقل المتعددة للملفات.

-N netrc استخدم netrc بدلاً من ~/.netrc. راجع قسم "ملف .netrc" للحصول على مزيد من المعلومات.

-n يمنع tnftp من محاولة "تسجيل الدخول التلقائي" عند الاتصال الأولي لعمليات النقل غير التلقائية. إذا تم تمكين تسجيل الدخول التلقائي، فسيتحقق tnftp من ملف .netrc (انظر أدناه) في دليل المستخدم الرئيسي للحصول على إدخال يصف حسابًا على الجهاز البعيد. إذا لم يكن هناك إدخال، فسيطلب tnftp اسم تسجيل الدخول للجهاز البعيد (افتراضيًا، هو هوية المستخدم على الجهاز المحلي)، وعند الضرورة، سيطلب كلمة مرور وحساب لتسجيل الدخول به. لتجاوز تسجيل الدخول التلقائي لعمليات النقل التلقائية، حدد اسم المستخدم (وربما كلمة المرور) على النحو المناسب.

-o output عند جلب الملفات تلقائيًا، احفظ المحتويات في output. يتم تحليل output وفقًا لـ "اتفاقيات تسمية الملفات" أدناه. إذا لم يكن output هو '-' أو لا يبدأ بـ '|'، فسيتم استرداد الملف الأول المحدد فقط في output؛ سيتم استرداد جميع الملفات الأخرى في اسم قاعدة ملفها البعيد.

-P port     يحدد رقم المنفذ إلى port.

-p          يمكّن وضع التشغيل السلبي للاستخدام خلف جدران الحماية التي تقوم بتصفية الاتصالات. تم إهمال هذا الخيار حيث يحاول tnftp الآن استخدام الوضع السلبي افتراضيًا، مع العودة إلى الوضع النشط إذا كان الخادم لا يدعم الاتصالات السلبية.

-q quittime

يخرج إذا توقف الاتصال لمدة quittime ثانية.

-R          إعادة تشغيل جميع عمليات الجلب التلقائي غير الموجهة.

-r wait     أعد محاولة اتصال إذا فشل، مع التوقف لمدة wait ثانية.

-s srcaddr  يستخدم srcaddr كعنوان IP المحلي لجميع الاتصالات.

-t          يمكّن تتبع الحزم.

-T direction,maximum[,increment]

اضبط الحد الأقصى لمعدل النقل لـ direction إلى maximum بايت/ثانية، وإذا تم تحديده، فإن الزيادة في increment بايت/ثانية. راجع معدل لمزيد من المعلومات.

-u url file ...

قم بتحميل الملفات الموجودة في سطر الأوامر إلى url حيث url هو أحد أنواع عناوين URL ‘ftp://’ المدعومة بواسطة الجلب التلقائي (مع اسم ملف مستهدف اختياري لتحميلات ملف واحد)، و file هو واحد أو أكثر من الملفات المحلية المراد تحميلها.

-V          تعطيل الإسهاب والتقدم، مع إلغاء الإعداد الافتراضي المتمثل في التمكين عند إخراج البيانات إلى الجهاز.

-v          تمكين الإسهاب والتقدم. هذا هو الإعداد الافتراضي إذا كان الإخراج إلى الجهاز (وفي حالة التقدم، يكون tnftp هو العملية الأمامية). يجبر tnftp على عرض جميع الاستجابات من الخادم البعيد، بالإضافة إلى الإبلاغ عن إحصائيات نقل البيانات.

-x xfersize

اضبط حجم مخازن الإرسال والاستقبال للمقبس على xfersize. راجع xferbuf لمزيد من المعلومات.

-?          عرض المساعدة على stdout، والخروج.

يمكن تحديد مضيف العميل الذي يجب أن يتصل به tnftp على سطر الأوامر. إذا تم ذلك، فسوف يحاول tnftp على الفور إنشاء اتصال بخادم FTP على هذا المضيف؛ وإلا، فسيدخل tnftp في مترجم الأوامر الخاص به وينتظر التعليمات من المستخدم. عندما ينتظر tnftp أوامر من المستخدم، يتم توفير المطالبة ‘ftp>’ للمستخدم. الأوامر التالية معترف بها بواسطة tnftp:

! [command [args]]

قم باستدعاء غلاف تفاعلي على الجهاز المحلي. إذا كانت هناك وسيطات، فسيتم أخذ الأول ليكون أمرًا ليتم تنفيذه مباشرة، مع بقية الوسيطات كحججه.

$ macro-name [args]

قم بتنفيذ الماكرو macro-name الذي تم تعريفه باستخدام أمر macdef. يتم تمرير الوسيطات إلى الماكرو دون توسيعها.

account [passwd]

قم بتوفير كلمة مرور إضافية مطلوبة بواسطة نظام بعيد للوصول إلى الموارد بمجرد اكتمال تسجيل الدخول بنجاح. إذا لم يتم تضمين وسيطة، فسيتم مطالبة المستخدم بكلمة مرور الحساب في وضع إدخال غير صدى.

append local-file [remote-file]

ألحق ملفًا محليًا بملف على الجهاز البعيد. إذا لم يتم تحديد remote-file، فسيتم استخدام اسم الملف المحلي في تسمية الملف البعيد بعد تعديله بواسطة أي إعداد ntrans أو nmap. يستخدم نقل الملف الإعدادات الحالية للنوع والتنسيق والوضع والهيكل.


ascii   اضبط نوع نقل الملف على شبكة ASCII. هذا هو النوع الافتراضي.

bell    رتب أن يتم إصدار صوت تنبيه بعد إكمال كل أمر نقل ملف.

binary  اضبط نوع نقل الملف لدعم نقل الصور الثنائية.

bye أنهِ جلسة FTP مع الخادم البعيد واخرج من tnftp. سيؤدي أيضًا الوصول إلى نهاية الملف إلى إنهاء الجلسة والخروج.

case    قم بتبديل تعيين حالة اسم الملف على الكمبيوتر البعيد أثناء أوامر get و mget و mput. عندما تكون حالة التشغيل (الافتراضي هو إيقاف التشغيل)، تتم كتابة أسماء الملفات على الكمبيوتر البعيد التي تحتوي على جميع الأحرف بأحرف كبيرة في الدليل المحلي مع تعيين الأحرف إلى أحرف صغيرة.

cd remote-directory
غيّر الدليل العامل على الجهاز البعيد إلى remote-directory.

cdup    غيّر الدليل العامل للجهاز البعيد إلى الدليل الأصل للدليل العامل الحالي للجهاز البعيد.

chmod mode remote-file
غيّر أوضاع الأذونات للملف remote-file على النظام البعيد إلى mode.

close   أنهِ جلسة FTP مع الخادم البعيد، وعد إلى مترجم الأوامر. يتم مسح أي وحدات ماكرو محددة.

cr  قم بتبديل إزالة حرف الإرجاع أثناء استرجاع الملف بنوع ASCII. يتم تمثيل السجلات بتسلسل إرجاع حرف / سطر جديد أثناء نقل الملف بنوع ASCII. عندما يكون cr قيد التشغيل (افتراضيًا)، تتم إزالة أحرف الإرجاع من هذا التسلسل ليتوافق مع فاصل سجل سطر جديد واحد في Unix. قد تحتوي السجلات الموجودة على الأنظمة البعيدة غير Unix على أسطر جديدة واحدة؛ عند إجراء نقل بنوع ASCII، يمكن تمييز هذه الأسطر الجديدة عن فاصل السجل فقط عندما يكون cr متوقفًا.

debug [debug-value]
قم بتبديل وضع التصحيح. إذا تم تحديد قيمة تصحيح اختيارية، فسيتم استخدامها لتعيين مستوى التصحيح. عندما يكون التصحيح قيد التشغيل، يطبع tnftp كل أمر يتم إرساله إلى الجهاز البعيد، مسبوقًا بالسلسلة '-->'.

delete remote-file
احذف الملف remote-file على الجهاز البعيد.

dir [remote-path [local-file]]
اطبع قائمة بمحتويات الدليل على الجهاز البعيد. تتضمن القائمة أي معلومات تعتمد على النظام يختار الخادم تضمينها؛ على سبيل المثال، ستنتج معظم أنظمة Unix إخراجًا من الأمر 'ls -l'. إذا لم يتم تحديد remote-path، فسيتم استخدام الدليل العامل الحالي. إذا كان التوجيه التفاعلي قيد التشغيل، فسوف يطالب tnftp المستخدم بالتحقق من أن الوسيطة الأخيرة هي بالفعل ملف الوجهة المحلي لتلقي إخراج dir. إذا لم يتم تحديد ملف محلي، أو إذا كان local-file هو '-', فسيتم إرسال الإخراج إلى الوحدة الطرفية.

disconnect  مرادف لـ close.

edit    قم بتبديل تحرير سطر الأوامر، والإكمال السياقي للأوامر والملفات. يتم تمكينه تلقائيًا إذا كان الإدخال من وحدة طرفية، وتعطيله بخلاف ذلك.

epsv، epsv4، epsv6
تبديل استخدام أوامر EPSV و EPRT الموسعة على جميع اتصالات IP و IPv4 و IPv6 على التوالي. حاول أولاً استخدام EPSV / EPRT، ثم PASV / PORT. هذا ممكن بشكل افتراضي. إذا فشل الأمر الموسع، فسيتم تعطيل هذا الخيار مؤقتًا لمدة الاتصال الحالي، أو حتى يتم تنفيذ epsv أو epsv4 أو epsv6 مرة أخرى.

exit
مرادف لـ bye.

features
عرض الميزات التي يدعمها الخادم البعيد (باستخدام الأمر FEAT).

fget localfile
استرجاع الملفات المدرجة في ملف localfile، بحيث يكون هناك سطر واحد لكل اسم ملف.

form format
تعيين تنسيق نقل الملف إلى format. التنسيق الافتراضي (والوحيد المدعوم) هو 'non-print'.

ftp host [port]
مرادف لـ open.

gate [host [port]]
تبديل وضع gate-ftp، الذي كان يستخدم للاتصال عبر بروكسيات TIS FWTK و Gauntlet FTP. لن يتم السماح بذلك إذا لم يتم تعيين خادم gate-ftp (إما بشكل صريح من قبل المستخدم، أو من متغير البيئة FTPSERVER). إذا تم إعطاء host، فسيتم تمكين وضع gate-ftp، وسيتم تعيين خادم gate-ftp إلى host. إذا تم إعطاء port أيضًا، فسيتم استخدامه كمنفذ للاتصال به على خادم gate-ftp.

get remote-file [local-file]
استرجاع ملف remote-file وتخزينه على الجهاز المحلي. إذا لم يتم تحديد اسم الملف المحلي، فسيتم إعطاؤه نفس الاسم الموجود على الجهاز البعيد، مع مراعاة التغيير بواسطة الإعدادات الحالية لـ case و ntrans و nmap. يتم استخدام الإعدادات الحالية لـ type و form و mode و structure أثناء نقل الملف.

glob
تبديل توسيع اسم الملف لـ mdelete و mget و mput و mreget. إذا تم إيقاف تشغيل glob باستخدام glob، فسيتم أخذ وسيطات اسم الملف حرفيًا وعدم توسيعها. يتم توسيع glob لـ mput كما في csh(1). بالنسبة لـ mdelete و mget و mreget، يتم توسيع كل اسم ملف بعيد بشكل منفصل على الجهاز البعيد ولا يتم دمج القوائم. من المحتمل أن يكون توسيع اسم الدليل مختلفًا عن توسيع اسم ملف عادي: يعتمد الناتج الدقيق على نظام التشغيل الأجنبي وخادم FTP، ويمكن معاينته عن طريق تنفيذ 'mls remote-files -'. ملاحظة: mget و mput و mreget لا تهدف إلى نقل هياكل فرعية كاملة من الملفات. يمكن القيام بذلك عن طريق نقل أرشيف [tar]({filename}../../tar)(1) من الشجرة الفرعية (في الوضع الثنائي).

hash [size]
تبديل طباعة علامة التجزئة ('#') لكل كتلة بيانات يتم نقلها. الحجم الافتراضي لكتلة البيانات هو 1024 بايت. يمكن تغيير ذلك عن طريق تحديد الحجم بالبايت. يؤدي تمكين hash إلى تعطيل التقدم.

help [command]
اطبع رسالة إعلامية حول معنى الأمر. إذا لم يتم إعطاء أي وسيطة، فإن tnftp تطبع قائمة بالأوامر المعروفة.

idle [seconds]
تعيين مؤقت الخمول على الخادم البعيد إلى seconds ثانية. إذا لم يتم تحديد seconds، فسيتم طباعة مؤقت الخمول الحالي.

image
مرادف لـ binary.

lcd [directory]
تغيير الدليل العامل على الجهاز المحلي. إذا لم يتم تحديد أي دليل، فسيتم استخدام الدليل الرئيسي للمستخدم.

less file   مرادف لـ "page".

lpage local-file
اعرض local-file باستخدام البرنامج المحدد بواسطة خيار "set pager".

lpwd
اطبع دليل العمل الحالي على الجهاز المحلي.

ls [remote-path [local-file]]
مرادف لـ "dir".

macdef macro-name
عرّف ماكرو. يتم تخزين الأسطر اللاحقة كـ macro باسم macro-name؛ ينهي سطر فارغ (أحرف سطر جديد متتالية في ملف أو إرجاعات عربة من المحطة الطرفية) وضع إدخال الماكرو. يوجد حد لـ 16 ماكرو و 4096 حرفًا إجماليًا في جميع الماكروات المعرّفة. يمكن أن يكون لأسماء الماكرو حد أقصى 8 أحرف. الماكروات قابلة للتطبيق فقط على الجلسة الحالية التي يتم تعريفها فيها (أو إذا تم تعريفها خارج الجلسة، على الجلسة التي تم استدعاؤها باستخدام الأمر "open" التالي)، وتبقى معرّفة حتى يتم تنفيذ أمر "close". لاستدعاء ماكرو، استخدم الأمر "$" (انظر أعلاه).

يعالج معالج الماكرو " $" و " \ " كأحرف خاصة. يتم استبدال " $" متبوعة برقم (أو أرقام) بالحجة المقابلة في أمر استدعاء الماكرو. يشير " $" متبوعة بـ "i" إلى معالج الماكرو بأن الماكرو الذي يتم تنفيذه يجب أن يكون في حلقة. في المرة الأولى، يتم استبدال "$i" بالحجة الأولى في أمر استدعاء الماكرو، وفي المرة الثانية يتم استبداله بالحجة الثانية، وهكذا. يتم استبدال " \ " متبوعة بأي حرف بهذا الحرف. استخدم " \ " لمنع المعالجة الخاصة للحرف " $".

mdelete [remote-files]
احذف remote-files على الجهاز البعيد.

mdir remote-files local-file
على غرار "dir"، ولكن يمكن تحديد ملفات بعيدة متعددة. إذا كانت المطالبة التفاعلية قيد التشغيل، فستطلب tnftp من المستخدم التحقق من أن الحجة الأخيرة هي بالفعل ملف الإخراج المحلي المستهدف لـ "mdir".

mget remote-files
قم بتوسيع remote-files على الجهاز البعيد وقم بتنفيذ "get" لكل اسم ملف. انظر "glob" للحصول على تفاصيل حول توسيع اسم الملف. ثم تتم معالجة أسماء الملفات الناتجة وفقًا لإعدادات "case" و "ntrans" و "nmap". يتم نقل الملفات إلى دليل العمل المحلي، والذي يمكن تغييره باستخدام "lcd directory"; يمكن إنشاء أدلة محلية جديدة باستخدام "! mkdir directory".

mkdir directory-name
أنشئ دليلًا على الجهاز البعيد.

mls remote-files local-file
على غرار "ls"، ولكن يمكن تحديد ملفات بعيدة متعددة، ويجب تحديد local-file. إذا كانت المطالبة التفاعلية قيد التشغيل، فستطلب tnftp من المستخدم التحقق من أن الحجة الأخيرة هي بالفعل ملف الإخراج المحلي المستهدف لـ "mls".

mlsd [remote-path]
اعرض محتويات remote-path (والذي يجب أن يكون افتراضيًا الدليل الحالي إذا لم يتم تحديده) بتنسيق قابل للتحليل آليًا، باستخدام MLSD. يمكن تغيير تنسيق العرض باستخدام "remopts mlst ...".

mlst [remote-path]
اعرض تفاصيل remote-path (والذي يجب أن يكون افتراضيًا الدليل الحالي إذا لم يتم تحديده) بتنسيق قابل للتحليل آليًا، باستخدام MLST. يمكن تغيير تنسيق العرض باستخدام "remopts mlst ...".

mode mode-name

يضبط وضع نقل الملفات إلى mode-name. الوضع الافتراضي (والوحيد المدعوم) هو 'stream'.

modtime remote-file

يعرض آخر وقت للتعديل للملف على الجهاز البعيد، بتنسيق RFC 2822.

more file

مرادف لـ page.

mput local-files

يقوم بتوسيع الأحرف البديلة في قائمة الملفات المحلية المعطاة كوسائط، ثم يقوم بتنفيذ الأمر put لكل ملف في القائمة الناتجة. راجع glob للحصول على تفاصيل حول توسيع أسماء الملفات. سيتم بعد ذلك معالجة أسماء الملفات الناتجة وفقًا لإعدادات ntrans و nmap.

mreget remote-files

كما هو الحال مع mget، ولكنه ينفذ reget بدلاً من get.

msend local-files

مرادف لـ mput.

newer remote-file [local-file]

يحصل على الملف فقط إذا كان وقت تعديل الملف البعيد أحدث من الملف الموجود على النظام الحالي. إذا لم يكن الملف موجودًا على النظام الحالي، فسيتم اعتبار الملف البعيد أحدث. بخلاف ذلك، يكون هذا الأمر مطابقًا للأمر get.

nlist [remote-path [local-file]]

مرادف لـ ls.

nmap [inpattern outpattern]

يضبط أو يلغي آلية تعيين اسم الملف. إذا لم يتم تحديد أي وسيطات، فسيتم إلغاء آلية تعيين اسم الملف. إذا تم تحديد وسيطات، فسيتم تعيين أسماء الملفات عن بُعد أثناء أوامر mput وأوامر put الصادرة بدون تحديد اسم ملف بعيد محدد. إذا تم تحديد وسيطات، فسيتم تعيين أسماء الملفات المحلية أثناء أوامر mget وأوامر get الصادرة بدون تحديد اسم ملف محلي محدد. هذا الأمر مفيد عند الاتصال بجهاز بعيد غير تابع لنظام Unix بأسماء ملفات مختلفة أو ممارسات. يعتمد التعيين على النمط المحدد بواسطة inpattern و outpattern.

inpattern هو نموذج لأسماء الملفات الواردة (التي قد تمت معالجتها بالفعل وفقًا لإعدادات ntrans و case). يتم تحقيق القوالب المتغيرة عن طريق تضمين التسلسلات '$1' و '$2' و ... '$9' في inpattern. استخدم '\' لمنع هذا المعالجة الخاصة لرمز '$'. يتم التعامل مع جميع الأحرف الأخرى حرفيًا، وتستخدم لتحديد قيم متغير nmap [inpattern]. على سبيل المثال، بالنظر إلى inpattern '$1.$2' واسم الملف البعيد 'mydata.data'، سيكون '$1' له قيمة 'mydata'، وسيكون '$2' له قيمة 'data'.

يحدد outpattern اسم الملف المعين الناتج. يتم استبدال التسلسلات '$1' و '$2' و ... '$9' بأي قيمة ناتجة من قالب inpattern. يتم استبدال التسلسل '$0' باسم الملف الأصلي. بالإضافة إلى ذلك، يتم استبدال التسلسل [seq1,seq2] بـ seq1 إذا لم تكن seq1 سلسلة فارغة؛ وإلا فسيتم استبدالها بـ seq2. على سبيل المثال، الأمر

nmap $1.$2.$3 [$1,$2].[$2,file]

سينتج عنه اسم ملف الإخراج 'myfile.data' لأسماء الملفات المدخلة 'myfile.data' و 'myfile.data.old'، و 'myfile.file' لاسم الملف المدخل 'myfile'، و 'myfile.myfile' لاسم الملف المدخل '.myfile'. يمكن تضمين المسافات في outpattern، كما في المثال:


nmap $1 sed s/ *$// > $1

استخدم الحرف '\' لمنع المعالجة الخاصة للأحرف '$'، '['، ']' و ','.

ntrans [inchars [outchars]]

قم بتعيين أو إلغاء تعيين آلية ترجمة أحرف اسم الملف. إذا لم يتم تحديد أي وسيطات، فسيتم إلغاء تعيين آلية ترجمة أحرف اسم الملف. إذا تم تحديد وسيطات، فسيتم ترجمة الأحرف الموجودة في أسماء الملفات البعيدة أثناء أوامر mput والأوامر put التي تصدر بدون تحديد اسم ملف بعيد مستهدف. إذا تم تحديد وسيطات، فسيتم ترجمة الأحرف الموجودة في أسماء الملفات المحلية أثناء أوامر mget والأوامر get التي تصدر بدون تحديد اسم ملف محلي مستهدف. هذا الأمر مفيد عند الاتصال بجهاز كمبيوتر بعيد غير تابع لنظام Unix ولديه اصطلاحات أو ممارسات تسمية ملفات مختلفة. يتم استبدال الأحرف الموجودة في اسم الملف التي تتطابق مع حرف في inchars بالحرف المقابل في outchars. إذا كان موضع الحرف في inchars أطول من طول outchars، فسيتم حذف الحرف من اسم الملف.

open host [port]

قم بإنشاء اتصال بخادم FTP المحدد. يمكن توفير رقم منفذ اختياري، وفي هذه الحالة، سيحاول tnftp الاتصال بخادم FTP على هذا المنفذ. إذا كانت خيار "تسجيل الدخول التلقائي" قيد التشغيل (افتراضيًا)، فسيحاول tnftp أيضًا تسجيل دخول المستخدم تلقائيًا إلى خادم FTP (انظر أدناه).

page file

قم باسترجاع الملف وعرضه باستخدام البرنامج المحدد بواسطة خيار "set pager".

passive [auto]

قم بتبديل الوضع السلبي (إذا لم يتم تقديم أي وسيطات). إذا تم تقديم "auto"، فتعامل كما لو تم تعيين FTPMODE على "auto". إذا تم تشغيل الوضع السلبي (افتراضيًا)، فسيرسل tnftop أمر PASV لجميع اتصالات البيانات بدلاً من أمر PORT. يطلب الأمر PASV من الخادم البعيد فتح منفذ لاتصال البيانات وإرجاع عنوان هذا المنفذ. يستمع الخادم البعيد على هذا المنفذ ويتصل به العميل. عند استخدام الأمر "PORT" التقليدي، يستمع العميل على منفذ ويرسل هذا العنوان إلى الخادم البعيد، الذي يتصل به. الوضع السلبي مفيد عند استخدام tnftp من خلال جهاز توجيه أو مضيف يتحكم في اتجاه حركة المرور. (لاحظ أنه على الرغم من أن خوادم FTP مطالبة بدعم أمر PASV بموجب RFC 1123، إلا أن بعضها لا يدعمه.)

pdir [remote-path]

قم بتنفيذ dir [remote-path]، واعرض النتيجة باستخدام البرنامج المحدد بواسطة خيار "set pager".

pls [remote-path]

قم بتنفيذ ls [remote-path]، واعرض النتيجة باستخدام البرنامج المحدد بواسطة خيار "set pager".

pmlsd [remote-path]

قم بتنفيذ mlsd [remote-path]، واعرض النتيجة باستخدام البرنامج المحدد بواسطة خيار "set pager".

preserve

قم بتبديل الحفاظ على أوقات التعديل في الملفات التي يتم استرجاعها.

progress

قم بتبديل عرض شريط تقدم النقل. سيتم تعطيل شريط التقدم لنقل يحتوي على "local-file" كـ '-' أو أمر يبدأ بـ '|'. راجع "اصطلاحات تسمية الملفات" لمزيد من المعلومات. يؤدي تمكين "progress" إلى تعطيل "hash".


prompt قم/أوقف التفاعل مع المطالبات. يحدث التفاعل مع المطالبات أثناء عمليات نقل ملفات متعددة للسماح للمستخدم باسترجاع أو تخزين الملفات بشكل انتقائي. إذا تم إيقاف التفاعل مع المطالبات (افتراضيًا، يكون التفاعل مفعلًا)، فستقوم أي عملية `mget` أو `mput` بنقل جميع الملفات، وستقوم أي عملية `mdelete` بحذف جميع الملفات.

عندما يكون التفاعل مع المطالبات مفعلًا، تتوفر الأوامر التالية في المطالبة:

    a   أجب بـ "نعم" على الملف الحالي، وأجب تلقائيًا بـ "نعم" على أي ملفات متبقية للتعليمة الحالية.

    n   أجب بـ "لا"، ولا تقم بنقل الملف.

    p   أجب بـ "نعم" على الملف الحالي، وأوقف وضع التفاعل مع المطالبات (كما لو تم إعطاء الأمر `prompt off`).

    q   أنهِ العملية الحالية.

    y   أجب بـ "نعم"، وقم بنقل الملف.

    ?   اعرض رسالة مساعدة.

أي استجابة أخرى ستجيب بـ "نعم" على الملف الحالي.

proxy ftp-command
نفذ أمر FTP على اتصال تحكم ثانوي. يتيح هذا الأمر الاتصال المتزامن بخادمين FTP بعيدين لنقل الملفات بين الخادمين. يجب أن يكون الأمر `proxy` الأول هو `open`، لإنشاء اتصال التحكم الثانوي. أدخل الأمر `proxy ?` لمعرفة أوامر FTP الأخرى التي يمكن تنفيذها على الاتصال الثانوي. تتصرف الأوامر التالية بشكل مختلف عند استخدامها مع الأمر `proxy`: `open` لن تحدد وحدات ماكرو جديدة أثناء عملية تسجيل الدخول التلقائي، و `close` لن تمسح تعريفات وحدات الماكرو الموجودة، و `get` و `mget` ينقلان الملفات من المضيف على اتصال التحكم الأساسي إلى المضيف على الاتصال الثانوي، و `put` و `mput` و `append` ينقلان الملفات من المضيف على الاتصال الثانوي إلى المضيف على اتصال التحكم الأساسي. تعتمد عمليات نقل الملفات بين الأطراف الثالثة على دعم بروتوكول FTP لأمر `PASV` بواسطة الخادم الموجود على اتصال التحكم الثانوي.

put local-file [remote-file]
خزّن ملفًا محليًا على الجهاز البعيد. إذا تم ترك `remote-file` بدون تحديد، فسيتم استخدام اسم الملف المحلي بعد معالجته وفقًا لإعدادات `ntrans` أو `nmap` المستخدمة في تسمية الملف البعيد. يستخدم نقل الملف الإعدادات الحالية لـ `type` و `format` و `mode` و `structure`.

pwd اطبع اسم الدليل العامل الحالي على الجهاز البعيد.

quit مرادف للأمر `bye`.

quote [arg ...]
يتم إرسال الوسائط المحددة حرفيًا إلى خادم FTP البعيد.

rate direction [maximum [increment]]
اضبط الحد الأقصى لمعدل النقل إلى `maximum` بايت/ثانية. إذا كان `maximum` هو 0، فقم بتعطيل المحدد.

يمكن أن يكون `direction` أحد الخيارات التالية:
    all كلا الاتجاهين.
    get عمليات النقل الواردة.
    put عمليات النقل الصادرة.

يمكن تعديل `maximum` أثناء التشغيل عن طريق زيادة `increment` بايت (افتراضيًا: 1024) في كل مرة يتم فيها استقبال إشارة:

    SIGUSR1 قم بزيادة `maximum` بمقدار `increment` بايت.

SIGUSR2 يقلل الحد الأقصى عن طريق زيادة عدد البايتات. يجب أن تكون النتيجة رقمًا موجبًا.

إذا لم يتم تحديد الحد الأقصى، فسيتم عرض معدلات التقييد الحالية.

ملاحظة: لم يتم تطبيق معدل النقل بعد في عمليات نقل وضع ASCII.

rcvbuf size
يحدد حجم مخزن استقبال المقبس إلى الحجم المحدد.

recv remote-file [local-file]
مرادف للأمر get.

reget remote-file [local-file]
يعمل الأمر reget مثل الأمر get، باستثناء أنه إذا كان الملف المحلي موجودًا وكان أصغر من الملف البعيد، فسيتم افتراض أن الملف المحلي هو نسخة تم نقلها جزئيًا من الملف البعيد، ويتم استئناف النقل من نقطة الفشل الظاهرة. هذا الأمر مفيد عند نقل الملفات الكبيرة جدًا عبر الشبكات المعرضة لانقطاع الاتصال.

remopts command [command-options]
يحدد خيارات على خادم FTP البعيد للأمر إلى command-options (يتم التعامل مع غيابها على أساس خاص بالأمر). الأوامر FTP البعيدة المعروفة التي تدعم الخيارات تشمل: MLST (يستخدم لـ MLSD و MLST).

rename [from [to]]
أعد تسمية الملف من على الجهاز البعيد، إلى الملف إلى.

reset   يمسح قائمة الانتظار الخاصة بالرد. يقوم هذا الأمر بإعادة مزامنة تسلسل الأمر/الرد مع خادم FTP البعيد. قد تكون إعادة المزامنة ضرورية بعد انتهاك بروتوكول FTP بواسطة الخادم البعيد.

restart marker
أعد تشغيل الأمر get أو put التالي مباشرةً عند العلامة المحددة. في أنظمة Unix، تكون العلامة عادةً إزاحة بايت في الملف.

rhelp [command-name]
اطلب المساعدة من خادم FTP البعيد. إذا تم تحديد اسم الأمر، فسيتم توفيره للخادم أيضًا.

rmdir directory-name
احذف دليلًا على الجهاز البعيد.

rstatus [remote-file]
بدون وسيطات، اعرض حالة الجهاز البعيد. إذا تم تحديد remote-file، اعرض حالة remote-file على الجهاز البعيد.

runique قم بتبديل تخزين الملفات على النظام المحلي بأسماء ملفات فريدة. إذا كان هناك ملف موجود بنفس الاسم مثل اسم الملف المحلي المستهدف لأمر get أو mget، فسيتم إلحاق ".1" بالاسم. إذا تطابق الاسم الناتج مع ملف موجود آخر، فسيتم إلحاق ".2" بالاسم الأصلي. إذا استمرت هذه العملية حتى ".99"، فستتم طباعة رسالة خطأ، ولن يتم إجراء النقل. سيتم الإبلاغ عن اسم الملف الفريد الذي تم إنشاؤه. لاحظ أن الأمر runique لن يؤثر على الملفات المحلية التي تم إنشاؤها من أمر shell (انظر أدناه). القيمة الافتراضية هي إيقاف التشغيل.

send local-file [remote-file]
مرادف للأمر put.

sendport    قم بتبديل استخدام أوامر PORT. بشكل افتراضي، سيحاول tnftp استخدام أمر PORT عند إنشاء اتصال لكل نقل للبيانات. يمكن أن يمنع استخدام أوامر PORT التأخيرات عند إجراء عمليات نقل ملفات متعددة. إذا فشل أمر PORT، فسيستخدم tnftp منفذ البيانات الافتراضي. عند تعطيل استخدام أوامر PORT، لن يتم إجراء أي محاولة لاستخدام أوامر PORT لكل نقل للبيانات. هذا مفيد لتطبيقات FTP معينة تتجاهل أوامر PORT ولكنها تشير بشكل غير صحيح إلى أنها قد تم قبولها.

set [option value]
يُعيّن قيمة للخيار. إذا لم يتم تحديد الخيار والقيمة، فسيتم عرض جميع الخيارات وقيمها. الخيارات المدعومة حاليًا هي:

anonpass    القيمة الافتراضية هي $FTPANONPASS

ftp_proxy   القيمة الافتراضية هي $ftp_proxy.

http_proxy  القيمة الافتراضية هي $http_proxy.

https_proxy القيمة الافتراضية هي $https_proxy.

no_proxy    القيمة الافتراضية هي $no_proxy.

pager   القيمة الافتراضية هي $PAGER.

prompt  القيمة الافتراضية هي $FTPPROMPT.

rprompt القيمة الافتراضية هي $FTPRPROMPT.

sslnoverify القيمة الافتراضية هي $FTPSSLNOVERIFY.

site [arg ...]
يتم إرسال الوسائط المحددة كما هي إلى خادم FTP البعيد كأمر SITE.

size remote-file
إرجاع حجم remote-file على الجهاز البعيد.

sndbuf size
يُعيّن حجم مخزن إرسال المقبس إلى size.

status  عرض الحالة الحالية لـ tnftp.

struct struct-name
يُعيّن هيكل نقل الملف إلى struct-name. الهيكل الافتراضي (والوحيد المدعوم) هو "file".

sunique تبديل تخزين الملفات على الجهاز البعيد بأسماء ملفات فريدة. يجب أن يدعم خادم FTP البعيد بروتوكول FTP STOU حتى ينجح ذلك. سيقوم الخادم البعيد بالإبلاغ عن اسم فريد. القيمة الافتراضية هي إيقاف التشغيل.

system  عرض نوع نظام التشغيل الذي يعمل على الجهاز البعيد.

tenex   يُعيّن نوع نقل الملف إلى النوع المطلوب للتواصل مع أجهزة TENEX.

throttle    مرادف لـ rate.

trace   تبديل تتبع الحزم.

type [type-name]
يُعيّن نوع نقل الملف إلى type-name. إذا لم يتم تحديد أي نوع، فسيتم عرض النوع الحالي. النوع الافتراضي هو ASCII للشبكة.

umask [newmask]
يُعيّن القناع الافتراضي على الخادم البعيد إلى newmask. إذا لم يتم تحديد newmask، فسيتم عرض القناع الحالي.

unset option
إلغاء تعيين الخيار. راجع set لمزيد من المعلومات.

usage command
طباعة رسالة استخدام الأمر.

user user-name [password [account]]
حدد هويتك لخادم FTP البعيد. إذا لم يتم تحديد كلمة المرور، فسيطلب tnftp من المستخدم إدخالها (بعد تعطيل الصدى المحلي). إذا لم يتم تحديد حقل الحساب، وقام خادم FTP بطلبه، فسيتم مطالبة المستخدم بإدخاله. إذا تم تحديد حقل حساب، فسيتم إعادة توجيه أمر حساب إلى الخادم البعيد بعد اكتمال تسلسل تسجيل الدخول إذا لم يكن الخادم البعيد يتطلب ذلك لتسجيل الدخول. ما لم يتم استدعاء tnftp مع تعطيل "تسجيل الدخول التلقائي"، تتم هذه العملية تلقائيًا عند الاتصال الأولي بخادم FTP.

verbose تبديل الوضع المطول. في الوضع المطول، يتم عرض جميع الاستجابات من خادم FTP للمستخدم. بالإضافة إلى ذلك، إذا كان الوضع المطول قيد التشغيل، فسيتم عرض إحصائيات حول كفاءة النقل عند اكتمال نقل ملف. افتراضيًا، يكون الوضع المطول قيد التشغيل.

xferbuf size
يُعيّن حجم مخزني إرسال واستقبال المقبس إلى size.

? [command]
مرادف لـ help.

يمكن وضع وسائط الأوامر التي تحتوي على مسافات بينها في علامات اقتباس " ".


يمكن للأوامر التي تقوم بتبديل الإعدادات أن تأخذ وسيطة "تشغيل" أو "إيقاف" صريحة لفرض الإعداد بشكل مناسب.

تدعم الأوامر التي تأخذ عدد بايت كوسيطة (مثل "hash" و "rate" و "xferbuf") لاحقة اختيارية على الوسيطة التي تغير تفسير الوسيطة. اللاحقات المدعومة هي: b لا يسبب أي تعديل. (اختياري) k كيلو؛ اضرب الوسيطة في 1024 m ميغا؛ اضرب الوسيطة في 1048576 g جيغا؛ اضرب الوسيطة في 1073741824

إذا تلقى tnftp إشارة SIGINFO (انظر وسيطة "status" الخاصة بـ stty(1)) أو إشارة SIGQUIT أثناء عملية نقل البيانات، فسيتم كتابة إحصائيات معدل النقل الحالي إلى الإخراج القياسي للأخطاء، بنفس تنسيق رسالة الإكمال القياسية.

جلب الملفات تلقائيًا

بالإضافة إلى الأوامر القياسية، يدعم هذا الإصدار من tnftp ميزة الجلب التلقائي. لتمكين الجلب التلقائي، مرر ببساطة قائمة بأسماء المضيفين/الملفات على سطر الأوامر.

التنسيقات التالية هي صيغ صالحة لعنصر الجلب التلقائي:

[user@]host:[path][/]
تنسيق FTP "الكلاسيكي".

إذا كان المسار يحتوي على حرف "glob" وتم تمكين "globbing" (انظر "glob")، فسيتم تنفيذ ما يعادل الأمر "mget path".

إذا كان جزء الدليل من المسار لا يحتوي على أحرف "globbing"، فسيتم تخزينه محليًا بالاسم "basename" (انظر basename(1)) للمسار، في الدليل الحالي. بخلاف ذلك، سيتم استخدام الاسم البعيد الكامل كاسم محلي، بالنسبة إلى الدليل الجذر المحلي.

ftp://[user[:password]@]host[:port]/path[/][;type=type]
عنوان URL الخاص بـ FTP، يتم جلبه باستخدام بروتوكول FTP إذا تم تعيين "ftp\_proxy". خلاف ذلك،
سيتم نقل عنوان URL باستخدام HTTP عبر الوكيل المحدد في "set ftp_proxy". إذا لم يتم تعيين "ftp_proxy" وتم توفير "user"، فسجل الدخول كـ "user". في هذه الحالة، استخدم "password" إذا تم توفيره، وإلا فاطلب من المستخدم إدخاله.

إذا تم توفير لاحقة "‎;type=A" أو "‎;type=I"، فسيتم تنفيذ نوع النقل كـ "ascii" أو "binary" (على التوالي). نوع النقل الافتراضي هو "binary".

من أجل الامتثال لمعيار RFC 3986، يفسر tnftp جزء المسار من عنوان URL الخاص بـ "ftp://" الخاص بالجلب التلقائي على النحو التالي:

تفسر علامة "/" مباشرة بعد "host[:port]" على أنها فاصل قبل المسار، وليس كجزء من المسار نفسه.

يتم تفسير المسار كسلسلة من مكونات الاسم مفصولة بـ "/". لجميع المكونات باستثناء المكون الأخير، ينفذ tnftp ما يعادل الأمر "cd". بالنسبة للمكون الأخير من المسار، ينفذ tnftp ما يعادل الأمر "get".

ستتسبب مكونات الاسم الفارغة، والتي تنتج عن "//" داخل المسار، أو من علامة "/" إضافية في بداية المسار، في تنفيذ ما يعادل الأمر "cd" بدون اسم دليل. من غير المرجح أن يكون هذا مفيدًا.

يتم فك ترميز أي رموز "‎%XX" (وفقًا لمعيار RFC 3986) داخل مكونات المسار، حيث يمثل XX رمز حرف في شكل ست عشري. يحدث هذا الفك بعد تقسيم المسار إلى مكونات، ولكن قبل استخدام كل مكون في ما يعادل الأمر "cd" أو "get". بعض الرموز المستخدمة بشكل متكرر هي "‎%2F" (الذي يمثل "/") و "‎%7E" (الذي يمثل "~").


التفسير أعلاه له العواقب التالية:

يتم تفسير المسار بالنسبة لدليل تسجيل الدخول الافتراضي للمستخدم المحدد أو للمستخدم "anonymous". إذا كان مطلوبًا الدليل /، استخدم بادئة مسار مثل %2F. إذا كان مطلوبًا دليل المستخدم الرئيسي (وكان الخادم البعيد يدعم هذه الصيغة)، استخدم بادئة مسار مثل %7Euser/. على سبيل المثال، لاسترجاع /etc/motd من "localhost" كمستخدم "myname" وكلمة المرور "mypass"، استخدم ftp://myname:mypass@localhost/%2fetc/motd.

يمكن التحكم في أوامر cd و get الدقيقة من خلال الاختيار الدقيق لمكان استخدام / ومكان استخدام %2F (أو %2f). على سبيل المثال، عناوين URL التالية تتوافق مع ما يعادل الأوامر الموضحة:

ftp://host/dir1/dir2/file         cd dir1, cd dir2, get file.

ftp://host/%2Fdir1/dir2/file      cd /dir1, cd dir2, get file.

ftp://host/dir1%2Fdir2/file       cd dir1/dir2, get file.

يجب أن يكون لديك إذن الوصول المناسب لكل من الدلائل الوسيطة المستخدمة في ما يعادل أمر cd.

http://[user[:password]@]host[:port]/path
عنوان URL لـ HTTP، يتم استرجاعه باستخدام بروتوكول HTTP. إذا تم تحديد `http_proxy`، فإنه يستخدم كعنوان URL لخادم وكيل HTTP. إذا كان مطلوبًا مصادقة HTTP لاسترجاع `path`، وكان `user` (وبشكل اختياري `password`) موجودًا في عنوان URL، فاستخدمهما للمحاولة الأولى للمصادقة.

https://[user[:password]@]host[:port]/path
عنوان URL لـ HTTPS، يتم استرجاعه باستخدام بروتوكول HTTPS. إذا تم تحديد `https_proxy`، فإنه يستخدم كعنوان URL لخادم وكيل HTTPS. إذا كان مطلوبًا مصادقة HTTPS لاسترجاع `path`، وكان `user` (وبشكل اختياري `password`) موجودًا في عنوان URL، فاستخدمهما للمحاولة الأولى للمصادقة. لا يوجد حاليًا أي تحقق من الشهادة والتحقق منها.

file:///path
عنوان URL محلي، يتم نسخه من `/path` على الجهاز المحلي.

about:topic
عرض معلومات حول `topic`; لا يتم استرجاع أي ملف لهذا العنصر الذي يتم جلبه تلقائيًا. القيم المدعومة تتضمن:

about:ftp      معلومات حول tnftp.

about:version  إصدار tnftp. من المفيد تقديمه عند الإبلاغ عن المشكلات.

ما لم يُذكر خلاف ذلك أعلاه، وإذا لم يتم تحديد -o output، يتم تخزين الملف في الدليل الحالي كاسم ملف ([basename]({filename}../../basename)(1)) لـ path. لاحظ أنه إذا تم استلام إعادة توجيه HTTP، فسيتم إعادة محاولة الاسترجاع باستخدام عنوان URL المستهدف الجديد الذي يوفره الخادم، مع مسار جديد مطابق. يوصى باستخدام -o output صريح، لتجنب الكتابة إلى أسماء ملفات غير متوقعة.

إذا كان التنسيق الكلاسيكي أو تنسيق عنوان URL لـ FTP يحتوي على / في النهاية أو مكون مسار فارغ، فسيقوم tnftp بالاتصال بالموقع والانتقال إلى الدليل المحدد كمسار، وترك المستخدم في وضع تفاعلي جاهزًا لإدخال المزيد من الأوامر. لن يعمل هذا إذا كان يتم استخدام ftp_proxy.


تستخدم عمليات النقل المباشر عبر HTTP بروتوكول HTTP 1.1. وتستخدم عمليات النقل عبر HTTP و FTP التي تتم عبر وكيل HTTP بروتوكول HTTP 1.0.

إذا تم تحديد الخيار -R، فسيتم إعادة تشغيل جميع عمليات الجلب التلقائي التي لا تتم عبر وكلاء FTP أو HTTP. بالنسبة لـ FTP، يتم ذلك عن طريق استخدام الأمر reget بدلاً من get. وبالنسبة لـ HTTP، يتم ذلك عن طريق استخدام توجيه HTTP/1.1 "النطاق: بايت=".

إذا كانت هناك حاجة إلى مصادقة WWW أو وكيل WWW، فستتم مطالبتك بإدخال اسم مستخدم وكلمة مرور للمصادقة.

عند تحديد عناوين IPv6 رقمية في عنوان URL، يجب إحاطة العنوان بأقواس مربعة. مثال: ftp://[::1]:21/. وذلك لأن النقطتين (:) تُستخدمان في عناوين IPv6 الرقمية وكذلك كفاصل لرقم المنفذ.

إيقاف عملية نقل الملف

لإيقاف عملية نقل ملف، استخدم مفتاح مقاطعة الطرفية (عادةً Ctrl-C). سيتم إيقاف عمليات الإرسال على الفور. سيتم إيقاف عمليات الاستقبال عن طريق إرسال أمر بروتوكول FTP ABOR إلى الخادم البعيد، والتخلص من أي بيانات إضافية تم استلامها. تعتمد السرعة التي يتم بها ذلك على دعم الخادم البعيد لمعالجة أمر ABOR. إذا كان الخادم البعيد لا يدعم أمر ABOR، فلن يظهر المطالب حتى يكمل الخادم البعيد إرسال الملف المطلوب.

إذا تم استخدام تسلسل مفتاح مقاطعة الطرفية أثناء انتظار tnftp لرد من الخادم البعيد لمعالجة أمر ABOR، فسيتم إغلاق الاتصال. يختلف هذا عن السلوك التقليدي (الذي يتجاهل مقاطعة الطرفية خلال هذه المرحلة)، ولكنه يعتبر أكثر فائدة.

اصطلاحات تسمية الملفات

يتم معالجة الملفات المحددة كوسائط لأوامر tnftp وفقًا للقواعد التالية.

      إذا تم تحديد اسم الملف `-`، يتم استخدام stdin (للقراءة) أو stdout (للكتابة).

      إذا كانت الحرف الأول من اسم الملف هو '|'، يتم تفسير باقي الوسيطة على أنها أمر shell. ثم يقوم tnftp بإنشاء shell، باستخدام `popen(3)` مع الوسيطة المقدمة، ويقرأ (يكتب) من stdout (stdin). إذا كان أمر shell يتضمن مسافات، فيجب اقتباس الوسيطة؛ على سبيل المثال: `"| ls -lt"`. مثال مفيد بشكل خاص لهذه الآلية هو: `dir "" | more`.

      إذا فشلت عمليات التحقق المذكورة أعلاه، وإذا تم تمكين globbing، يتم توسيع أسماء الملفات المحلية وفقًا للقواعد المستخدمة في csh(1)؛ راجع الأمر glob. إذا كان الأمر tnftp يتوقع ملفًا محليًا واحدًا (على سبيل المثال، put)، يتم استخدام اسم الملف الأول الذي تم إنشاؤه بواسطة عملية globbing.

      بالنسبة لأوامر mget وأوامر get التي لا تحدد أسماء ملفات محلية، يكون اسم الملف المحلي هو اسم الملف البعيد، والذي قد يتم تغييره بواسطة إعدادات case أو ntrans أو nmap. قد يتم بعد ذلك تغيير اسم الملف الناتج إذا كان runique قيد التشغيل.

      بالنسبة لأوامر mput وأوامر put التي لا تحدد أسماء ملفات بعيدة، يكون اسم الملف البعيد هو اسم الملف المحلي، والذي قد يتم تغييره بواسطة إعدادات ntrans أو nmap. قد يقوم الخادم البعيد بعد ذلك بتغيير اسم الملف الناتج إذا كان sunique قيد التشغيل.

معلمات نقل الملفات

يحدد مواصفات بروتوكول نقل الملفات (FTP) العديد من المعلمات التي قد تؤثر على نقل الملف. يمكن أن يكون النوع واحدًا من "ascii" أو "image" (ثنائي) أو "ebcdic" أو "local byte size" (معظمها لأجهزة PDP-10 و PDP-20). يدعم tnftp نوعي نقل الملفات "ascii" و "image"، بالإضافة إلى حجم البايت المحلي 8 لنقلات وضع Tenex.

يدعم tnftp القيم الافتراضية فقط لمعلمات نقل الملفات المتبقية: mode و form و struct.

ملف .netrc

يحتوي ملف .netrc على معلومات تسجيل الدخول والتهيئة المستخدمة بواسطة عملية تسجيل الدخول التلقائي. يقع في الدليل الرئيسي للمستخدم، ما لم يتم إلغاء ذلك باستخدام الخيار -N netrc، أو تحديده في متغير البيئة NETRC. يتم التعرف على الرموز التالية؛ يمكن فصلها بواسطة مسافات أو علامات جدولة أو أسطر جديدة:

machine name

حدد اسم الجهاز البعيد. تبحث عملية تسجيل الدخول التلقائي في ملف .netrc عن رمز الجهاز الذي يتطابق مع الجهاز البعيد المحدد في سطر أوامر tnftp أو كحجة أمر فتح. بمجرد إجراء المطابقة، تتم معالجة الرموز اللاحقة في ملف .netrc، ويتوقف ذلك عند الوصول إلى نهاية الملف أو رمز جهاز آخر أو رمز افتراضي.

default

هذا هو نفسه اسم الجهاز باستثناء أن "default" يطابق أي اسم. يمكن أن يكون هناك رمز "default" واحد فقط، ويجب أن يكون بعد جميع رموز الأجهزة. عادة ما يتم استخدامه على النحو التالي:

default login anonymous password user@site

وبذلك يتم تزويد المستخدم بتسجيل دخول FTP تلقائي غير معروف إلى الأجهزة غير المحددة في ملف .netrc. يمكن تجاوز ذلك باستخدام علامة -n لتعطيل تسجيل الدخول التلقائي.

login name

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

password string

قم بتوفير كلمة مرور. إذا كان هذا الرمز موجودًا، فستقوم عملية تسجيل الدخول التلقائي بتزويد السلسلة المحددة إذا كان الخادم البعيد يتطلب كلمة مرور كجزء من عملية تسجيل الدخول. لاحظ أنه إذا كان هذا الرمز موجودًا في ملف .netrc لأي مستخدم آخر غير المستخدم المجهول، فسيقوم tnftp بإيقاف عملية تسجيل الدخول التلقائي إذا كان ملف .netrc قابلاً للقراءة من قبل أي شخص آخر.

account string

قم بتوفير كلمة مرور حساب إضافية. إذا كان هذا الرمز موجودًا، فستقوم عملية تسجيل الدخول التلقائي بتزويد السلسلة المحددة إذا كان الخادم البعيد يتطلب كلمة مرور حساب إضافية، أو ستبدأ عملية تسجيل الدخول التلقائي بأمر ACCT إذا لم يكن كذلك.

macdef name

حدد ماكرو. يعمل هذا الرمز مثل وظيفة أمر macdef في tnftp. يتم تعريف الماكرو بالاسم المحدد؛ تبدأ محتوياته بالسطر التالي في ملف .netrc وتستمر حتى يتم العثور على سطر فارغ (أحرف أسطر جديدة متتالية). مثل الرموز الأخرى في ملف .netrc، فإن macdef ينطبق فقط على تعريف الجهاز الذي يسبقه. لا يمكن استخدام إدخال macdef بواسطة تعريفات أجهزة متعددة؛ بدلاً من ذلك، يجب تعريفه بعد كل جهاز يُقصد استخدامه معه. إذا تم تعريف ماكرو يسمى "init"، فسيتم تنفيذه تلقائيًا كخطوة أخيرة في عملية تسجيل الدخول التلقائي. على سبيل المثال:


افتراضي
macdef init
epsv4 off

متبوعًا بسطر فارغ.

تحرير سطر الأوامر

يدعم `tnftp` تحرير سطر الأوامر التفاعلي، من خلال مكتبة `editline(3)`. يتم تمكينه باستخدام الأمر `edit`، ويتم تمكينه افتراضيًا إذا كان الإدخال من طرفية طرفية (tty). يمكن استرجاع الأسطر السابقة وتحريرها باستخدام مفاتيح الأسهم، ويمكن استخدام مفاتيح تحرير أخرى على غرار GNU Emacs أيضًا.

يتم تكوين مكتبة `editline(3)` باستخدام ملف `.editrc` — راجع `editrc(5)` لمزيد من المعلومات.

يتوفر ربط مفاتيح إضافي لـ `tnftp` لتوفير إكمال للأوامر وأسماء الملفات الحساسة للسياق (بما في ذلك الإكمال عن بعد). لاستخدام هذا، قم بربط مفتاح بأمر `editline(3)` ‏`ftp-complete`. افتراضيًا، يتم ربطه بمفتاح TAB.

موجه سطر الأوامر

افتراضيًا، يعرض `tnftp` موجه سطر أوامر "ftp\> " للمستخدم. يمكن تغيير ذلك باستخدام الأمر `set prompt`.

يمكن عرض موجه على الجانب الأيمن من الشاشة (بعد إدخال الأمر) باستخدام الأمر `set rprompt`.

يتم استبدال تسلسلات التنسيق التالية بالمعلومات المعطاة:

%/   دليل العمل الحالي عن بعد.

%c[[0]n]، %. [[0]n]
المكون الأخير من دليل العمل الحالي عن بعد، أو n من المكونات الأخيرة إذا تم إعطاء رقم n. إذا بدأ n بـ "0"، فإن عدد المكونات التي يتم تخطيها تسبق المكون (المكونات) الأخيرة في التنسيق "/<number>trailing" (لـ "%c") أو "...trailing" (لـ "%.").

%M   اسم المضيف البعيد.

%m   اسم المضيف البعيد، حتى النقطة الأولى '.'.

%n   اسم المستخدم البعيد.

%%   حرف النسبة المئوية واحد "%".

البيئة

يستخدم `tnftp` متغيرات البيئة التالية.

FTPANONPASS   كلمة المرور لإرسالها في عملية نقل FTP مجهولة. القيمة الافتراضية هي "`whoami`@".

FTPMODE   يلغي الوضع الافتراضي للتشغيل. القيم المدعومة هي:

active   وضع FTP النشط فقط

auto     تحديد تلقائي للوضع السلبي أو النشط (هذا هو الوضع الافتراضي)

gate     وضع gate-ftp

passive  وضع FTP السلبي فقط

FTPPROMPT   موجه سطر الأوامر المراد استخدامه. القيمة الافتراضية هي "ftp> ". راجع "موجه سطر الأوامر" لمزيد من المعلومات.

FTPRPROMPT   موجه الجانب الأيمن من سطر الأوامر المراد استخدامه. القيمة الافتراضية هي سلسلة فارغة. راجع "موجه سطر الأوامر" لمزيد من المعلومات.

FTPSERVER   المضيف المراد استخدامه كخادم gate-ftp عند تمكين وضع gate.

FTPSERVERPORT   المنفذ المراد استخدامه عند الاتصال بخادم gate-ftp عند تمكين وضع gate. القيمة الافتراضية هي المنفذ الذي تم إرجاعه بواسطة البحث `getservbyname(3)` لـ "ftpgate/tcp".

FTPUSERAGENT   القيمة المراد إرسالها لرأس HTTP User-Agent.

FTPSSLNOVERIFY
يتم تعيينها على 1 لعدم التحقق من شهادات SSL.

HOME   للموقع الافتراضي لملف `.netrc`، إذا كان موجودًا.

NETRC الموقع البديل لملف ‎.netrc.

PAGER يستخدمه العديد من الأوامر لعرض الملفات. افتراضيًا هو more(1) إذا كان فارغًا أو لم يتم تعيينه.

SHELL لتعيين الصدفة الافتراضية.

ftp_proxy عنوان URL لخادم بروكسي FTP لاستخدامه عند إجراء طلبات URL لـ FTP (إذا لم يتم تحديده، فسيتم استخدام بروتوكول FTP القياسي).

انظر http_proxy للحصول على ملاحظات إضافية حول استخدام البروكسي.

http_proxy عنوان URL لخادم بروكسي HTTP لاستخدامه عند إجراء طلبات URL لـ HTTP. إذا كان مصادقة البروكسي مطلوبة وكان هناك اسم مستخدم وكلمة مرور في هذا العنوان URL، فسيتم استخدامها تلقائيًا في المحاولة الأولى للمصادقة على البروكسي.

إذا كانت هناك حاجة إلى أحرف URL "غير آمنة" في اسم المستخدم أو كلمة المرور (على سبيل المثال، '@' أو '/')، فقم بترميزها باستخدام ترميز RFC 3986 '%XX'.

لاحظ أن استخدام اسم مستخدم وكلمة مرور في ftp_proxy و http_proxy قد يكون غير متوافق مع البرامج الأخرى التي تستخدمهما (مثل lynx(1)).

ملاحظة: لا يتم استخدامه للجلسات التفاعلية، فقط لعمليات الجلب من سطر الأوامر.

https_proxy عنوان URL لخادم بروكسي HTTPS لاستخدامه عند إجراء طلبات URL لـ HTTPS.

انظر http_proxy للحصول على ملاحظات إضافية حول استخدام البروكسي.

no_proxy قائمة مفصولة بمسافات أو فواصل للمضيفين (أو النطاقات) التي لا يجب استخدام البروكسي لها. قد يحتوي كل إدخال على لاحقة اختيارية ':port'، والتي تقيد المطابقة بالاتصالات بهذا المنفذ.

الوضع السلبي الممتد وجدران الحماية

بعض تكوينات جدران الحماية لا تسمح لـ tnftp باستخدام الوضع السلبي الممتد. إذا وجدت أن أمرًا بسيطًا مثل ls يبدو معلقًا بعد طباعة رسالة مثل هذه:

229Entering Extended Passive Mode (|||58551|)

فستحتاج إلى تعطيل الوضع السلبي الممتد باستخدام epsv4 off. انظر القسم أعلاه "ملف .netrc" للحصول على مثال حول كيفية جعله تلقائيًا.

انظر أيضًا

getservbyname(3)، editrc(5)، services(5)، ftpd(8)

المعايير

يحاول tnftp الامتثال لما يلي:

RFC 959 بروتوكول نقل الملفات

RFC 1123 متطلبات للمضيفين على الإنترنت - التطبيقات والدعم

RFC 1635 كيفية استخدام FTP المجهول

RFC 2389 آلية التفاوض حول الميزات لبروتوكول نقل الملفات

RFC 2428 ملحقات FTP لـ IPv6 و NAT

RFC 2616 بروتوكول نقل النص التشعبي - HTTP/1.1

RFC 2822 تنسيق رسالة الإنترنت

RFC 3659 ملحقات لـ FTP

RFC 3986 معرف الموارد الموحد (URI)

التاريخ

ظهر الأمر tnftp في 4.2BSD.

تم تنفيذ العديد من الميزات مثل تحرير سطر الأوامر، والإكمال السياقي للأوامر والملفات، وشريط التقدم الديناميكي، وجلب الملفات وعناوين URL تلقائيًا، والحفاظ على وقت التعديل، والتحكم في معدل النقل، وتكوين مطالبة سطر الأوامر، والتحسينات الأخرى على tnftp القياسي من BSD في NetBSD 1.3 والإصدارات اللاحقة بواسطة Luke Mewburn ⟨_⟩.

تمت إضافة دعم IPv6 بواسطة مشروع WIDE/KAME (ولكن قد لا يكون موجودًا في جميع إصدارات tnftp غير NetBSD، اعتمادًا على ما إذا كان نظام التشغيل يدعم IPv6 بطريقة مماثلة لـ KAME).

الأخطاء

يعتمد التنفيذ الصحيح للعديد من الأوامر على السلوك السليم للخادم البعيد.

تم تصحيح خطأ في معالجة أحرف الرجوع في رمز نقل وضع ASCII في نظام 4.2BSD. قد يؤدي هذا التصحيح إلى نقل غير صحيح للملفات الثنائية من وإلى خوادم 4.2BSD باستخدام نوع ASCII. تجنب هذه المشكلة باستخدام نوع الصورة الثنائية.

يفترض tnftp أن جميع عناوين IPv4 المعينة (عناوين IPv6 التي لها شكل مثل ::ffff:10.1.1.1) تشير إلى وجهات IPv4 التي يمكن التعامل معها بواسطة مقابس AF_INET. ومع ذلك، في بعض تكوينات شبكات IPv6، هذا الافتراض غير صحيح. في مثل هذه البيئة، يجب تمرير عناوين IPv4 المعينة إلى مقابس AF_INET6 مباشرةً. على سبيل المثال، إذا كان موقعك يستخدم مترجم SIIT للترجمة من IPv6 إلى IPv4، فلن يتمكن tnftp من دعم هذا التكوين.