כיצד אוכל להעתיק קבצים בתיקייה לתיקייה אחרת במסוף לינוקס

How Can I Copy Files Folder Into Another Folder Linux Terminal



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

העתקת קבצים במסוף

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







כל השלבים מודגמים ב- Ubuntu 18.04.1. בהתחלה, בואו ליצור קומץ קבצי דמה לעבודה.



$mkdir -vdir_A



כעת, בואו ניצור את קבצי הדמה באמצעות מגע.





$לגעתדֶמֶה{1..10}

בואו ניצור תיקייה נוספת בתוך dir_A עם קומץ קבצי דמה.



$mkdir -vdir_B
$לגעתדֶמֶה{1..10}

כעת, כל המבנה של המדריך dir_A נראה כך.

$עֵץdir_A

פקודת Cp

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

זהו המבנה הבסיסי של ה cp פקודה.

$cp <אפשרויות> <מָקוֹר> <יַעַד>

לדוגמה, בואו נעשה עותק של דמה 1 קובץ עם השם dummy1_copy .

$cpdummy1 dummy1_copy

כעת, ננסה להעתיק מספר קבצים בבת אחת. עבור פעולה כזו, cp דורש שהיעד יהיה ספרייה. כאן אשתמש בביטוי תווים כלליים כדי לתפוס את כל דֶמֶה קבצים והכנס אותם לתוך ~/הורדות מַדרִיך.

$cpדֶמֶה*~/הורדות

מה דעתך להעתיק ספרייה?

$cp -vrdir_A dir_A_copy

כאן השתמשנו בשני דגלים שונים. בואו נעשה פירוט מהיר שלהם.

  • -r: עומד על א רקורסיבי העתק (כולל כל קובץ מוסתר). חובה חובה אם ההעתקה כרוכה בספרייה שלמה או יותר.
  • -v: עומד על מִלוּלִי . כלי ה- cp יפיק כל פעולה שהוא מבצע.

רוצה לעקוב אחר הקישורים הסמליים? הוסף את הדגל -L.

$cp -Lvr <מָקוֹר> <יַעַד>

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

$cp -nv <מָקוֹר> <יַעַד>

אם אתה מבצע פעולת העתקה/הדבקה רגישה, עדיף לקבל את השליטה הטובה ביותר על מה שקורה, נכון? במקרה כזה, השתמש בדגל -i. הוא מייצג מצב אינטראקטיבי שבו cp יבקש אישור בכל פעם שמתעורר קונפליקט.

$cp -אני <מָקוֹר> <יַעַד>

אם אתה מעוניין יותר, דף האיש הוא תמיד אחד התיעודים הטובים ביותר. למידע נוסף על cp.

$איש cp

פקודת mv

כלי mv דומה לכלי cp. עם זאת, במקום להעתיק, mv מעביר קבצים וספריות. בהשוואה ל- cp, זה פשוט יותר.

מבנה הפקודה של mv דומה ל- cp.

$mv <אוֹפְּצִיָה> <מָקוֹר> <יַעַד>

כדי להעביר את התוכן של dir_A ל dir_A_copy , הפעל את הפקודה הבאה.

$mv -vdir_A/dir_A_copy

כאן, הדגל -v מיועד מִלוּלִי מצב. אם ברצונך להעביר רק את התוכן של dir_A, השתמש במקום זאת בתוכו הבא. במקרה זה, ספריית היעד חייבת להתקיים מראש.

$mv -vdir_A/ *dir_A_copy

אין בכלי mv הרבה לעבוד איתו. לכל האפשרויות הזמינות, עיין בדף האיש.

$איש mv

פקודה Rsync

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

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

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

ראשית, מבנה הפקודה הבסיסי של rsync. זה די דומה ל- cp.

$rsync<אפשרויות> <מָקוֹר> <יַעַד>

לפני שמתחילים, להלן קומץ טיעונים פופולריים של rsync.

  • -v : מצב מפורט, פולט כל פעולה המתבצעת במסך הקונסולה.
  • -vv : מצב מפורט עם פרטים נוספים
  • -r : מצב רקורסיבי, חייב להיות קיים בעת העתקת ספריות
  • -עם : דחיסת נתונים
  • : נתוני ארכיון
  • : ריצה יבשה, יש להריץ בשילוב עם מצב מילולי. פשוט פולט את הפעולות אם הפקודה הייתה אמורה לפעול באמת
  • -לִמְחוֹק : מחק את הקבצים והספריות בספריית היעד אם מדריך המקור אינו מכיל אותם עוד
  • -אין-קובץ שלם : מאלץ rsync להשתמש באלגוריתם שידור הדלתא שלו, לא משנה מה. שימושי בתרחישים בהם עליך להבטיח את כמות הכתיבה הנמוכה ביותר של נתונים.
  • -הסר קובץ מקור : מחק את קובצי המקור לאחר ההעתקה.

בואו לבדוק אותם בפעולה. ראשית, העתק הספרייה. הפעל את הפקודה הבאה.

$rsync-vrdir_A/dir_A_copy

לקבלת פלט מפורט נוסף, נשתמש בדגל -vv.

$rsync-vv -rdir_A/dir_A_copy

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

$rsync-vv -אין קובץ שלםדֶמֶה*dir_B/

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

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

$rsync-anvrdir_A/dir_A_copy

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

$ rsync<אוֹפְּצִיָה> <local_dir>
<שם משתמש> @<מארח מרחוק>:<destination_dir>

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

$rsync-v -הסר קבצי מקור <מָקוֹר> <יַעַד>

בדוק את תוצאת הניתוח.

$עֵץdir_A

$עֵץdir_A_copy

מחשבות אחרונות

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

תהנה!