mmv - מקוון בענן

זוהי הפקודה mmv שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

תָכְנִית:

שֵׁם


mmv - העבר/העתק/הוסף/קשר קבצים מרובים לפי תבניות תווים כלליים

תַקצִיר


mmv [-m|x|r|c|o|a|l|s] [-h] [-d|p] [-g|t] [-v|n] [--] [החל מ- ל]

דוגמאות


שנה את השם של כולם *.jpeg קבצים בספרייה הנוכחית ל * .jpg:

mmv '*.jpeg' '#1.jpg'

החלף את המופע הראשון של א ב ג עם xyz בכל הקבצים בספרייה הנוכחית:

mmv '*abc*' '#1xyz#2'

שנה שם קבצים המסתיימים ב .html.iw, .html.deוכו' לסיום ב .en.html, .de.htmlוכו 'ב
הספרייה הנוכחית:

mmv '*.html.??' '#1.#2#3.html'

שנה את שם קבצי המוזיקה מ <מסלול לא.> - - <שיר title>.ogg ל -
<מסלול לא.> - <שיר title>.ogg בספרייה הנוכחית:

mmv '* - * - *.ogg' '#2 - #1 - #3.ogg'

תיאור


Mmv מעביר (או מעתיק, מוסיף או קישורים, כפי שצוין) כל קובץ מקור התואם א החל מ-
דפוס לשם היעד שצוין על ידי ל תבנית. הפעולה המרובה הזו מתבצעת
בבטחה, כלומר ללא מחיקה בלתי צפויה של קבצים עקב התנגשויות של שמות יעדים
עם שמות קבצים קיימים או עם שמות יעד אחרים. יתר על כן, לפני שעושים משהו,
mmv מנסה לזהות שגיאות שייגרמו מכל מערך הפעולות
צוין ונותן למשתמש את הבחירה להמשיך ולהימנע מהפוגע
חלקים או הפלה. mmv אמנם תומך בקבצים גדולים (LFS) אבל הוא *לא* תומך בדלילות
קבצים (כלומר זה מפוצץ אותם).

אפשרויות המשימה

אם mmv מהלכים, העתקות, הוספות או קישורים כפופים למערכת הראשונה של אפשרויות שניתנו
מֵעַל. אם אף אחד מאלה לא צוין, המשימה ניתנת על ידי שם הפקודה שתחתיו
mmv הופעל (argv[0]):

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

mmv -x
mcp -c
מטורף -א
mln -l

אפשרויות אפשרויות המשימה הן:

-m : העבר את קובץ המקור לשם היעד. שניהם חייבים להיות על אותו מכשיר. לא יזוז
ספריות. אם קובץ המקור הוא קישור סמלי, מעביר את הקישור ללא
בודקים אם היעד של הקישור מהספרייה החדשה שונה מהישן.

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

-r : שנה את שם קובץ המקור או ספריה לשם היעד. שם היעד לא יכול לכלול א
נתיב: הקובץ נשאר באותה ספרייה בכל המקרים. אפשרות זו היא היחידה
דרך לשנות את שמות הספריות תחת mmv.

-c : העתק את קובץ המקור לשם היעד. מגדיר את זמן שינוי הקובץ והרשאה
סיביות של קובץ היעד לזה של קובץ המקור, ללא קשר אם ה-
קובץ היעד כבר קיים. שרשראות ומחזורים (שיוסבר להלן) לא
מותר.

-o : החלף את שם היעד עם קובץ המקור. אם קיים קובץ יעד, הוא מוחלף,
שמירה על הבעלים וההרשאות המקוריים שלו. אם זה לא קיים, זה כן
נוצר, עם סיביות הרשאת קריאה-כתיבה מוגדרות לפי אומסק(1), והביצוע
סיביות הרשאה שהועתקו מקובץ המקור. בכל מקרה, שינוי הקובץ
הזמן מוגדר לשעה הנוכחית.

-a: הוסף את התוכן של קובץ המקור לשם היעד. זמן שינוי הקובץ היעד הוא
להגדיר את השעה הנוכחית. אם קובץ היעד אינו קיים, הוא נוצר עם
סיביות ההרשאה מוגדרות כתחת -o. בניגוד לכל האפשרויות האחרות, -a מאפשר ריבוי
קבצי מקור בעלי אותו שם יעד, למשל "mmv -a \*.c big" יצורף את כולם
קבצי ".c" ל-"גדולים". גם שרשראות ומחזורים מותרים, אז "mmv -aff" יהיה
להכפיל את "f".

-l : קישור שם יעד לקובץ המקור. שניהם חייבים להיות באותו מכשיר, והמקור
לא חייב להיות ספרייה. שרשראות ומחזורים אסורים.

-s : זהה ל-l, אך השתמש בקישורים סמליים במקום בקישורים קשיחים. לקישור שהתקבל
כדי לכוון בחזרה למקור, או ששם המקור חייב להתחיל ב-'/', או ה-
המטרה חייבת להיות בספרייה הנוכחית או בספריית המקור. אם אף אחד מאלה
התנאים מתקיימים, הקישור נדחה. עם זאת, מקור ויעד יכולים להתקיים
התקנים שונים, והמקור יכול להיות ספרייה.

ניתן לתת רק אחת מהאפשרויות הללו, והיא חלה על כל הקבצים התואמים. נוֹתָר
אין צורך לתת אפשרויות בנפרד, כלומר "mmv -mk" מותר.

צמדי דפוסים מרובים / דפוסי קריאה מ-STDIN

מְרוּבֶּה החל מ- -- ל ניתן לציין זוגות דפוסים על ידי השמטת צמד הדפוסים ב-
שורת הפקודה, והזנתם בקלט הסטנדרטי, זוג אחד בכל שורה. (אם תבנית
צמד ניתן בשורת הפקודה, הקלט הסטנדרטי אינו נקרא.) לפיכך,

mmv
ab
CD

ישנה את השם של "a" ל-"b" ו-"c" ל-"d". אם ניתן להתאים קובץ לכמה מהנתונים
החל מ- דפוסים, ה ל נעשה שימוש בתבנית של הזוג התואם הראשון. לכן,

mmv
ab
ac

ייתן את הודעת השגיאה "a -> c : no match" כי הקובץ "a" (גם אם הוא קיים) היה
כבר תואם על ידי זוג הדפוס הראשון.

אזהרה: מצב הפעולה הזה עושה זאת לֹא לעבוד אם הדפוסים עצמם מכילים רווחים. לראות
http://bugs.debian.org/149873 לקבלת פרטים.

השמיים מ תבנית

השמיים החל מ- דפוס הוא שם קובץ עם תווים כלליים מוטבעים: '*', '?', '['...']' ו-';'. ה
לשלושה הראשונים יש את הרגיל שלהם sh(1) משמעויות של, בהתאמה, התאמת מחרוזת כלשהי של
תווים, התאמת כל תו בודד, והתאמת כל אחד מקבוצת התווים.

בין ה-'[' ו-']', מצוין טווח בין התו 'a' לתו 'z'
עם "az". ניתן לשלול את קבוצת התווים התואמים על ידי הוספת '^' אחרי ה-
'['. לפיכך, "[^b-e2-5_]" יתאים לכל תו מלבד 'b' עד 'e', ​​'2' עד '5',
ו-'_'.

שים לב שנתיבים מותרים בתבניות, וייתכן שתווים כלליים מתערבבים איתם
חותך באופן שרירותי. ה ';' תו כללי שימושי להתאמת קבצים בכל עומק ב-
עץ ספריות. זה מתאים ל-"*/" שחוזר על עצמו כל מספר פעמים, כולל אפס,
ויכול להתרחש רק בתחילת התבנית או בעקבות '/'. כך ";*.c"
יתאים לכל קבצי ".c" בספרייה הנוכחית או מתחתיה, בעוד "/;*.c" יתאים להם
בכל מקום במערכת הקבצים.

בנוסף, אם החל מ- דפוס (או ה ל תבנית) מתחיל ב-"~/", ה-'~' מוחלף
עם שם ספריית הבית. (שים לב שהתכונה "~משתמש" של CSH(1) לא
מיושם.) עם זאת, ה-'~' אינו מטופל כתו כללי, במובן שהוא לא
הוקצה אינדקס תווים כלליים (ראה להלן).

מכיוון שהתאמת ספרייה תחת אפשרות משימה שאינה -r או -s תגרום ל-an
שגיאה, משימות אחרות מלבד -r ו-s תואמות ספריות רק נגד מפורש לחלוטין החל מ-
דפוסים (כלומר לא מכילים תווים כלליים). מתחת ל-r ו-s, זה חל רק על "." ו
"...".

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

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

השמיים ל תבנית

השמיים ל דפוס הוא שם קובץ עם מוטבע כלליים אינדקסים, שבו אינדקס מורכב מ
התו '#' ואחריו מחרוזת ספרות. כאשר קובץ מקור מתאים ל-a החל מ-
דפוס, שם יעד עבור הקובץ נבנה מתוך ל דפוס על ידי החלפת ה
אינדקסים של תווים כלליים לפי התווים בפועל שתואמים לתווים כלליים שהתייחסו אליהם ב-
שם המקור. לפיכך, אם ה החל מ- התבנית היא "abc*.*" וה- ל הדפוס הוא "xyz#2.#1", אם כך
"abc.txt" ממוקד ל-"xyztxt.". (ה'*' הראשון התאים ל"", והשני התאים
"txt".) באופן דומה, עבור צמד הדפוסים ";*.[clp]" -> "#1#3/#2", "foo1/foo2/prog.c" הוא
ממוקד ל-"foo1/foo2/c/prog". שימו לב שאין '/' אחרי ה-"#1" ב- ל
דפוס, מכיוון שהמחרוזת מתאימה לכל ';' הוא תמיד ריק או מסתיים ב-'/'. ב
במקרה זה, זה מתאים ל-"foo1/foo2/".

להמיר את המחרוזת המותאמת על ידי תו כללי לאותיות קטנות או רישיות לפני
הטבעת אותו בשם היעד, הכנס 'l' או 'u', בהתאמה, בין ה-'#' וה-
מחרוזת ספרות.

השמיים ל דפוס, כמו ה החל מ- דפוס, יכול להתחיל עם "~/" (ראה למעלה). זה לא
מחייבים לצרף את ל דפוס במירכאות בשורת הפקודה מאז CSH(1) מתרחב
ה-'~' בדיוק באותו אופן כמו mmv (או, במקרה של sh(1), אינו מרחיב אותו ב
את כל).

עבור כל אפשרויות המשימות מלבד -r, אם שם היעד הוא ספרייה, היעד האמיתי
שם נוצר על ידי הוספת '/' ואחריו הרכיב האחרון של שם קובץ המקור.
לדוגמה, "mmv dir1/a dir2" יזוז, אם "dir2" הוא אכן ספרייה
"dir1/a" ל-"dir2/a". עם זאת, אם "dir2/a" כבר קיים והוא עצמו ספריה, זה
נחשב לטעות.

להסיר כל תו (למשל '*', '?' או '#') מהמשמעות המיוחדת שלו mmv, כמו כאשר ה
שם החלפה בפועל חייב להכיל את התו '#', לפני התו המיוחד עם
a ´\' (וצרפו את הטיעון במירכאות בגלל הקליפה). זה עובד גם ל
לסיים אינדקס תווים כלליים כאשר יש אחריו להיות אחריו ספרה בשם הקובץ, למשל
"a#1\1".

שרשראות ומחזורים

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

mmv
ab
לִפנֵי הַסְפִירָה

מציין את השרשרת "a" -> "b" -> "c". מחזור הוא שרשרת שבה שם היעד האחרון
מפנה חזרה לקובץ המקור הראשון, למשל "mmv aa". Mmv מזהה שרשראות ומחזוריות
ללא קשר לסדר שבו ניתנות בפועל הפעולות המרכיבות אותם. איפה
מותר, כלומר בהעברת קבצים, שינוי שמות והוספה של קבצים, שרשראות ומחזורים מטופלים
בחן, על ידי ביצועם בסדר הנכון. מחזורים נשברים על ידי שינוי השם הראשון
אחד הקבצים לשם זמני (או רק לזכור את הגודל המקורי שלו בעת ביצוע
מוסיף).

התנגשויות ומחיקות

כאשר כל שני קבצים תואמים או יותר יצטרכו להעביר, להעתיק או לקשר אליהם
שם קובץ יעד, mmv מזהה את המצב כשגיאה לפני ביצוע פעולות כלשהן.
יתר על כן, mmv בודק אם אחת מפעולותיה תגרום להרס של קיים
קבצים. אם מצוינת האפשרות -d (מחיקה), כל המחיקות או ההחלפות של הקבצים יבוצעו
חֶרֶשׁ. מתחת ל-p (הגן), כל המחיקות או ההחלפות (למעט אלו שצוינו עם
"(*)" בקלט הסטנדרטי, ראה להלן) מטופלים כשגיאות. ואם אף אחת מהאפשרויות לא
שצוין, המשתמש נשאל לגבי כל מחיקה או החלפה בנפרד. (זרם חדש
כדי "/dev/tty" משמש עבור כל השאילתות האינטראקטיביות, לא הקלט הסטנדרטי.)

טיפול בשגיאה

בכל פעם שמתגלה שגיאה במפרט הפעולה של המשתמש, הודעת שגיאה היא
נתון על הפלט הסטנדרטי, ו mmv ממשיך לבדוק את שאר הפעולות שצוינו.
ברגע שכל השגיאות מתגלות, mmv שואל את המשתמש אם ברצונו להמשיך ב
הימנעות מהפעולות השגויות או להפסיק לחלוטין. זה וכל שאר השאילתות עשויות להיות
נמנע על ידי ציון האפשרות -g (go) או -t (terminate). הרצון הקודם
לפתור את כל הקשיים על ידי הימנעות מהפעולות השגויות; האחרון יבטל mmv if
כל שגיאה מזוהה. ציון ברירת המחדל של אחת מהן mmv ל-p, אלא אם כן -d הוא
שצוין (ראה לעיל). לפיכך, -g ו-t שימושיים ביותר בעת ריצה mmv ברקע
או בסקריפט מעטפת, כאשר שאילתות אינטראקטיביות אינן רצויות.

מערכות דוחות

לאחר שנקבעו הפעולות שיש לבצע, mmv מבצע אותם בשקט, אלא אם כן
האופציה -v (verbose) או -n (ללא ביצוע) מצוינת. הגורמים הראשונים mmv לדווח
כל פעולה שבוצעה על הפלט הסטנדרטי as

a -> ב: בוצע.

כאן, "a" ו-"b" יוחלפו בשמות המקור והיעד, בהתאמה. אם ה
הפעולה מוחקת את היעד הישן, "(*)" מוכנס אחרי שם היעד. וגם ה
סמל "->" משתנה כאשר יש לשבור מחזור: ה'>' משתנה ל-'^' ב-
פעולה שלפניה שונה שם היעד הישן לזמני, וה-'-' משתנה ל-
'=' בפעולה שבה נעשה שימוש הזמני.

תחת -n, אף אחת מהפעולות לא מבוצעת, אבל הודעות כמו האמור לעיל מודפסות על
הפלט הסטנדרטי עם ה-": done." הושמט.

ניתן להחזיר את הפלט שנוצר על ידי -n (לאחר עריכה, אם תרצה). mmv על
קלט סטנדרטי (על ידי השמטת ה- החל מ- -- ל זוג על mmv שורת הפקודה). כדי להקל
זֶה, mmv מתעלם משורות בקלט הסטנדרטי שנראות כמו שגיאה משלה ו"בוצע"
הודעות, כמו גם כל השורות שמתחילות ברווח לבן, ויקבלו זוגות דפוסים
עם או בלי "->" (או "-^", "=>", או "=^"). שורות עם "(*)" אחרי ה-
לדפוס המטרה יש השפעה של הפעלת -d עבור הקבצים התואמים לדפוס זה בלבד, אז
שמחיקות כאלה נעשות בשקט.

אזהרה: משמעות הדבר היא לא צפוי דברים עלול לקרות אם קבצים תואם על ידי הדפוסים
להכיל רווחים. לראות http://bugs.debian.org/149873 לקבלת פרטים.

בעת האכלה mmv הפלט שלו, יש לזכור לציין שוב את אפשרות המשימה (אם
כל) ששימשו במקור ליצירתו.

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

יְצִיאָה סטָטוּס


Mmv יוצא עם סטטוס 1 אם הוא מפסיק לפני ביצוע משהו, עם סטטוס 2 אם הוא מפסיק בשל
לכישלון לאחר השלמת חלק מהפעולות, ובמצב 0 אחרת.

השתמש ב-MMV באופן מקוון באמצעות שירותי onworks.net



התוכניות המקוונות האחרונות של לינוקס ו-Windows