אנדרואיד

כיצד להחריג קבצים וספריות באמצעות rsync

Linux/Mac Terminal Tutorial: How To Use The rsync Command - Sync Files Locally and Remotely

Linux/Mac Terminal Tutorial: How To Use The rsync Command - Sync Files Locally and Remotely

תוכן עניינים:

Anonim

Rsync הוא כלי שורת פקודה מהיר ורב-תכליתי המסנכרן קבצים ותיקיות בין שני מיקומים על גבי מעטפת מרוחקת.

בעזרת Rsync אתה יכול לשקף נתונים, ליצור גיבויים מצטברים ולהעתיק קבצים בין מערכות. בעת העתקת נתונים, ייתכן שתרצה לכלול קובץ או ספריות אחד או יותר על סמך שמם או מיקומם.

במדריך זה, נראה לך כיצד להחריג קבצים וספריות באמצעות rsync.

לפני שאתה מתחיל

עליך להיות בעל ידע בסיסי כיצד פועל rsync.

בדוגמאות שלהלן נשתמש ב- rsync עם האפשרות -a . זה אומר ל- rsync לסנכרן ספריות באופן רקורסיבי, להעביר מכשירים מיוחדים ולחסום ולשמור על קישורים סמלים, זמני שינוי, קבוצה, בעלות והרשאות.

בעת אי הכללת קבצים או ספריות, עליך להשתמש בנתיבים היחסיים שלהם לספריית המקורות.

ישנן שתי אפשרויות לציין את הקבצים והספריות שברצונך לכלול:

  • משורת פקודה, באמצעות האפשרות - כלול. מתוך קובץ, השתמש באפשרות - --exclude-from .

אל תכלול קובץ ספציפי

כדי לא לכלול קובץ ספציפי, העבירו את הנתיב היחסי לקובץ לאפשרות - --exclude .

בדוגמה הבאה הקובץ src_directory/file.txt לא יועבר:

rsync -a --exclude 'file.txt' src_directory/ dst_directory/

אל תכלול מדריך ספציפי

אי הכללת ספרייה ספציפית זהה לאי הכללת קובץ, פשוט העבירו את הנתיב היחסי לספריה לאפשרות - --exclude כמוצג להלן:

rsync -a --exclude 'dir1' src_directory/ dst_directory/

rsync -a --exclude 'dir1/*' src_directory/ dst_directory/

אל תכלול קבצים או ספריות מרובים

כדי לא לכלול קבצים או ספריות מרובים פשוט ציין אפשרויות - אי הכללה מרובות:

rsync -a --exclude 'file1.txt' --exclude 'dir1/*' --exclude 'dir2' src_directory/ dst_directory/

rsync -a --exclude={'file1.txt', 'dir1/*', 'dir2'} src_directory/ dst_directory/

אם מספר הקבצים ו / או הספריות שברצונך לבצע אי הכללה גדול, במקום להשתמש באפשרויות מרובות - --exclude תוכל לציין את הקבצים והספריות שברצונך לכלול בקובץ ולהעביר את הקובץ ל --exclude-from אפשרות.

הפקודה שלמטה עושה בדיוק אותו דבר כמו זו שלמעלה:

rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/ exclude-file.txt

file1.txt dir1/* dir2

אל תכלול קבצים או ספריות מרובים על בסיס תבנית

בעזרת rsync אתה יכול גם לכלול קבצים וספריות על בסיס תבנית התואמת לשם הקובץ או הספריה.

לדוגמה, כדי לכלול את כל קבצי ה- .jpg שתפעיל:

rsync -a --exclude '*.jpg*' src_directory/ dst_directory/

זה קצת יותר מסובך להחריג את כל הקבצים והמדריכים האחרים למעט אלה התואמים דפוס מסוים. נניח שאתה רוצה לכלול את כל הקבצים והספריות האחרים למעט הקבצים המסתיימים ב- .jpg .

אפשרות אחת היא להשתמש בפקודה הבאה:

rsync -a -m --include='*.jpg' --include='*/' --exclude='*' src_directory/ dst_directory/

בעת שימוש באפשרות כלול / אי הכללה מרובה, כלל ההתאמה הראשון חל.

  • --include='*.jpg' - ראשית אנו כוללים את כל קבצי ה- .jpg . --include='*/' - אז אנו כוללים את כל הספריות בספריה של src_directory . ללא rsync זה יעתיק רק קובצי *.jpg בספרייה ברמה העליונה. -m - מסיר את הספריות הריקות.

אפשרות נוספת תהיה לצרף את הפלט של פקודת החיפוש ל- rsync:

find src_directory/ -name "*.jpg" -printf %P\\0\\n | rsync -a --files-from=- src_directory/ dst_directory/

  • -printf %P\\0\\n - יסיר את src_directory/ מנתיב הקובץ. פירושו - קבצים --files-from=- - כולל רק את הקבצים מהקלט הרגיל (קבצים שהועברו מפקודת החיפוש).

סיכום

במדריך זה למדת כיצד להחריג קבצים וספריות בעת העברת נתונים באמצעות Rsync. יש עוד הרבה דברים ללמוד על Rsync בדף מדריך למשתמש של Rsync.

מסוף rsync