سؤال

ملف foo.txt موجود على الجهاز البعيد على: /home/user/foo.txt

إنه غير موجود على الجهاز المحلي.

أريد حذف foo.txt باستخدام RSYNC.

لا أعرف (وأفترض لأغراض هذا السؤال أنه لا يمكنني معرفة ذلك) ما هي الملفات الأخرى الموجودة في /المنزل /المستخدم على الآلات المحلية أو البعيدة ، لذلك لا يمكنني فقط مزامنة الدليل بأكمله.

ماذا او ما rsync الأمر الذي يمكنني استخدامه لحذف foo.txt على الجهاز البعيد؟

هل كانت مفيدة؟

المحلول

جرب هذا:

rsync -rv --delete --include=foo.txt '--exclude=*' /home/user/ user@remote:/home/user/

(نوصي بشدة بالركض مع --dry-run أولاً لاختباره) على الرغم من أنه يبدو أنه سيكون من الأسهل استخدام SSH ...

ssh user@remote "rm /home/user/foo.txt"

نصائح أخرى

هذا تافه بعض الشيء ، ولكن إذا ، مثلي ، أتيت إلى هذه الصفحة بحثًا عن طريقة لحذف محتوى الدليل من الخادم البعيد باستخدام RSYNC ، فهذه كيف فعلت ذلك:

  1. إنشاء مجلد وهمية فارغة:

    mkdir mock

  2. المزامنة معها:

    rsync -arv --delete --dry-run ~/mock/ remote_server:~/dir_to_clean/

  3. إزالة --dry-run من الخط أعلاه للقيام بالشيء بالفعل.

كما هو مقترح أعلاه ، استخدم --dry-run لاختبار قبل. --delete يحذف الملفات على الموقع البعيد لكل صفحة RSYNC MAN.

rsync -rv --delete user@hostname.local:full/path/to/foo.txt

التعليق أدناه قائلاً إن هذا سوف يذكر فقط غير صحيح. لإدراج الاستخدام فقط --list-only وإزالة --delete.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top