מדריך למשתמש: השתמש בשם הפקודה ב- Linux

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





מה קורה עם mv?

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



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

כיצד לשנות שם של קובץ יחיד עם mv

לשנות שם של קבצים ב- Linux



אם ברצונך להשתמש mv לשנות את שם הקובץ ואז להקליד mv, רווח, שם הקובץ, רווח והשם החדש שאתה רוצה שיהיה לקובץ. ואז לחץ על Enter.



אתה יכול גם להשתמש ls כדי לבדוק שהקובץ ישתנה שם או לא

mv rename

כיצד לשנות שם של קבצים מרובים באמצעות mv

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



הדברים מתגברים מיד.



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

בואו נסתכל על הקבצים.

rename

הנה שיטה אחת לעשות את זה שלא יכולה לפנות לכתיבת קובץ סקריפט בפועל של Bash.

rename

האם זה עבד או לא? בואו נבדוק את הקבצים ואז נמשיך הלאה.

rename

אז זה עובד בסדר. כולם כן .prg קבצים עכשיו, ואין .prog קבצים בספריה.

מה קרה?

מה בעצם עשתה הפקודה הארוכה? בוא נבדוק את זה.

prename

החלק הראשון מתחיל לולאה שתעבד כל אחת מהן .prog קובץ בספרייה, בתורו.

חלק אחר אומר מה יהיה העיבוד לַעֲשׂוֹת . זה משתמש mv כדי להעביר כל קובץ לקובץ החדש. שם הקובץ החדש יהיה דומה למדי לשם הקובץ המקורי למעט החלק .prog. כמו כן, ישמש את התוסף של .prg.

הנה דרך קלה

בהחלט. הנה ה לשנות שם פקודה.

לשנות שם של קבצים ב- Linux

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

בהפצות שמקורן בדביאן או באובונטו אתה פשוט מתקין perl-rename ככה:

*.prog

בהפצות שמקורן ב- RedHat או בפדורה אתה פשוט מתקין שם מקדים ככה. זכור כי ה- p הראשוני, מייצג את Perl.

rename

כדי להתקין אותו במנג'רו לינוקס השתמש בפקודה הבאה. זכור כי פקודת שינוי שם מכונה s.

.prog

השתמש בשם פקודה -> בוא בוא ננסה יותר

כאן נשתמש rename. אנו עושים זאת כדי שיהיה לנו קבוצה של קבצי .prog.

.prg

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

ls ls

זה עובד טוב, עכשיו כולם קבצי .prg למעט .prog קבצים שנותרו בספריה.

מה קרה פה?

בואו נדון בזה בשלושה חלקים.

בתוך ה ראשון חלק, תראה את שם הפקודה, rename (או ls או ls, להפצות האחרות).

השלישי אחרון החלק הוא ^, שמסביר $ להפעלת כל קבצי ה- prog.

ה שְׁנִיָה החלק מסביר את העבודה שאנחנו רוצים לעשות בכל שם קובץ. ה ^ פירושו תחליף. המונח הראשון (ls) הוא מה ls יחפש בכל שם קובץ והמונח השני (ls) הוא מה שיוחלף בו.

תוספות עווית לא עובדות

הפקודות החלק האמצעי או הביטוי המרכזי הוא 'ביטוי רגיל' של פרל והוא זה שמספק את s/ לפקד על אמינותה.

שינוי חלקים אחרים של שם קובץ

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

בספריה ישנם קבצי קוד מקור רבים ב- C. קידומת כל שמות הקבצים היא סְלֶנְג_. אנו יכולים לבדוק זאת באמצעות y/.

a-z

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

A-Z

כאן אנו מחפשים קבצי .c ומחפשים סלנג_. בכל פעם שמצאת סלנג_ בשם קובץ הוא מוחלף בסלא_.

ניתן גם לבדוק את תוצאת הפקודה לאחר חזרה על הפקודה ls מלמעלה תוך שימוש באותם פרמטרים:

a-z

הסרת חלק משם הקובץ

אנו יכולים גם למחוק חלק משם קובץ לאחר החלפת מונח החיפוש ללא כלום.

mv oldfile.txt newfile.txt

אנחנו יכולים גם לראות מה ls מצווה כי שלנו .c קבצים מוכנים מראש עם sl_. בוא נעזוב את זה לגמרי.

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

ls *.txt
יכול לעבד כל קובץ c בתורו. כמו כן, הוא מחפש sl_ בשם הקובץ. אם מצאת את זה, אתה יכול להיות מוחלף בלא כלום. לחלופין, מונח החיפוש מוסר.

שימוש נוסף ב-

ls *.prog -l
הפקודה מאשרת שקידומת sl_ נמחקה מכל קובץ .c.

הגבלה משתנה לחלקים מסוימים משמות הקבצים

בואו נשתמש

for f in *.prog; do mv -- '$f' '${f%.prog}.prg'
לצפייה בקבצים עם פרמטר המחרוזת בשם הקובץ שלהם. ואז נשתמש לשנות שם פקודה להחליף את המחרוזת באמצעות פרמטר מחרוזת. כמו כן, אנו משתמשים ls פעם נוספת כדי לראות את ההשפעה של לשנות שם הייתה לפקודה על קבצים אלה.

ls *.pr*
for f in *.prog; do mv -- '$f' '${f%.prog}.prg'
sudo apt-get install rename

לאחר מכן תראה ארבעה קבצים בעלי תפסיק בשם הקובץ שלהם. param.c, param_one.c ו- param_two.c יש לכולם תפסיק ב מתחיל של שמם. יש ל- third_param.c תפסיק ב אחרון של שמו, רגע לפני ההרחבה.

אתה יכול לחפש לשנות שם פקודה עבור param בכל מקום בשם הקובץ. לאחר מכן תוכל להחליף אותו בפרמטר בכל המקרים.

שימוש נוסף ב ls הפקודה מראה לנו שמה שקרה בדיוק. האם תפסיק היה בהתחלה או בסוף שם הקובץ. אתה יכול גם להחליף אותו ב- פָּרָמֶטֶר.

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

sudo dnf install prename
פירושו התחלה של מחרוזת, (.) פירושו כל תו בודד (מלבד תו חדש),
sudo pacman -Syu perl-rename
פירושו סוף של מחרוזת.

כמו כן, אנו משתמשים בתחילת מטא-אופי מחרוזת (

ls *.prog
) כדי להגביל את החיפוש שלנו לתחילת שמות הקבצים.

rename 's/.prog/.prg/' *.prog
ls *.pr*
ls sl*.c
rename 's/slang_/sl_' *.c

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

שֶׁלָנוּ לשנות שם הפקודה משתמשת בתחילת המטא-אופי של השורה (^) לפני פרמטר מונח החיפוש. זה מסביר לשקול רק את מונח החיפוש שנמצא אם הוא נמצא בראשית שם הקובץ. פרמטר מחרוזת החיפוש יימנע אם הוא נמצא במקום אחר בשם הקובץ.

כשמסתכלים עם

ls sl*.c
, נוכל לראות ששם הקובץ מכיל את הפרמטר אחרון של שם הקובץ לא השתנה. אבל לשלושת שמות הקבצים יש פרמטר ב מתחיל משמותיהם עם מחרוזת חיפוש שהוחלפה בערך המונח החלופי.

ה לשנות שם הכוח טמון בכוחו של פרל.

מסתכל עם קבוצות

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

בדוגמא זו אנו משתמשים

ls *.c rename 's/sl_//' *.c ls *.c
לצפייה באילו קבצים יש לנו שמתחיל עם str. כמו כן, ישנם שניים מהם, string.c ו- strangle.c. אנו יכולים גם לשנות את שם שני המחרוזות לאחר שימוש בשיטה המכונה קיבוץ.

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

ls *param*
rename 's/param/parameter' *.c
ls *param*

לאחר השימוש

ls *param*.c
פעם אחרת מאשרת כי string.c הפך ל- bang.c ו- strangle.c הוא כעת bangle.c.

השתמש בשם פקודה עם תרגומים

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

בתוך ה לשנות שם הפקודה שניתנה להלן הודעה שאנחנו לא משתמשים ב-

rename 's/^parameter/value/' *.c
כדי להתחיל את הביטוי האמצעי, אנו משתמשים
ls *param*.c
. זה מסביר שהפקודה לא יכולה לבצע החלפה; אנו מבצעים תרגום.

המונח

ls value*.c
הוא ביטוי של פרל. המשמעות היא שכל התווים הקטנים ברצף מ- a עד z. אבל, המונח
ls str*.c
מייצג את כל האותיות הגדולות ברצף מא 'עד ת'.

את הביטוי האמצעי בפקודה זו ניתן לנסח מחדש כאילו כל אחת מאותיות הקטנות מ- a עד z נמצאות בשם הקובץ. הוא מחליף אותם באמצעות התווים המתאימים מסדר התווים האותיים מ- A עד Z.

אם ברצונך לאלץ את שמות הקבצים של כל קבצי ה- PRG באותיות רישיות, פשוט השתמש בפקודה זו:

שנה את שם 'y / a-z / A-Z /' * .prg

rename 's/(stri|stra)ng/bang/' *.c

הפקודה

ls ban*.c
הראה לנו שכולם .prg קבצי סיומת נמצאים כעת באותיות רישיות. כמו כן, כדי להיות מדויקים בהחלט, הם לא .prg קבצים יותר. ובכן, הם קבצי PRG. ודא כי לינוקס רגישה לאותיות רישיות.

אנו יכולים גם להפוך את הפקודה האחרונה לאחר שנחזור למיקום

ls *.PRG
ומונחי A-Z בביטוי האמצעי.

שנה את שם 'y / A-Z / a-z /' * .PRG

ls * .prg

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

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

סיכום:

לפניכם הכל על 'השתמשו בשמו של Command On Linux'. מה דעתך לגבי זה? אם ברצונך לחלוק שיטה או טיפים אחרים הנוגעים למאמר, ספר לנו למטה. לשאלות ושאלות נוספות הודיעו לנו בסעיף ההערות למטה!

קרא גם: