[novashare_inline_content]
שינוי שם של קובץ הוא אחת ממשימות שורת הפקודה הבסיסיות שיש לשלוט ב-Linux. עם זאת, המשימה פשוטה יחסית לביצוע עם קובץ בודד, אך הופכת מורכבת יותר כאשר יש כמה. במדריך זה, אני מסביר כיצד לשנות שם של קובץ או ספרייה בלינוקס עם הפקודותmv
etrename
.
עם ההזמנהmv
ההזמנהmv
הוא קיצור של move באנגלית. זה מאפשר לך להעביר קובץ או ספרייה ממיקום אחד לאחר. פקודה זו גם מאפשרת לך לשנות את שם הקובץ, להעביר אותו תחת שם חדש. זה משולב בcoreutilsולכן מותקן כברירת מחדל.
שנה שם קובץ או ספרייה בלינוקס עםmv
תחביר פקודהmv
כדי לשנות את שם הקובץ הוא כדלקמן:
mv [OPTIONS] source destination
לדוגמה, כדי לשנות את שם הקובץancien_nom.txt
לִקרַאתnouveau_nom.txt
, עליך להשתמש בפקודה הבאה:
mv ancien_nom.txt nouveau_nom.txt
⚠️ תשומת לב:ההזמנהmv
יכול להחליף את קובץ היעד אם האפשרות-אֲנִילא מצוין.
השתמש בפקודהls -l
לצפייה בתוצאה:
ls -l
ניתן כמובן לשנות את יעד הקובץ, אם תרצו להעבירו למקום אחר, תוך שינוי שם הקובץ. לדוגמה:
mv /ancien/emplacement/ancien_nom.txt /nouvel/emplacement/nouveau_nom.txt
אתה יכול להשתמשmv
כדי לשנות שם של ספרייה באותו אופן כמו עבור קובץ:
mv /emplacement/ancien_nom_répertoire /emplacement/nouveau_nom_répertoire
שנה שם של קבצים מרובים עםmv
ההזמנהmv
יכול לשנות את שם קובץ אחד בלבד בכל פעם. אבל ייתכן שאתה מחפש לשנות שמות של קבצים מרובים בבת אחת. כאן זה נהיה מסובך! אכן, לבצע משימה זו עםmv
, עליך להשתמש בו בשילוב עם לולאהfor
או חיפושfind
כדי לשנות שמות של מספר קבצים בו זמנית.
לדוגמה, נשתמש בלולאהfor
כדי לשנות את הסיומת של מספר קבצים.html
ב.old
:
for f in *.html; do
mv -- "$f" "${f%.html}.old"
done
בואו ננתח את הקוד שורה אחר שורה:
- השורה הראשונה יוצרת לולאה
for
וחוזרת על כל הקבצים המסתיימים בסיומת.html
. - השורה השנייה חלה על כל איטרציה ומשנה את השם של כל קובץ על ידי שינוי הסיומת
.html
יש.old
. done
מציין את סוף הלולאה
דוגמה שנייה זו מציגה את אותה דוגמה עם השימוש בfind
בשילוב עםmv
:
find . -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.old"' \;
ההזמנהfind
מחפש את כל הקבצים המסתיימים ב.html
בספרייה הנוכחית. לְאַחַר מִכֵּן,-exec
לבצע את הפקודהmv
על כל הקבצים התואמים את החיפוש.
כפי שאתה יכול לראות, השימוש בmv
לשנות שמות של מספר קבצים זה לא פשוט ודורש כישורי bash טובים.
אפשרויות נפוצות לשימוש איתןmv
הנה כמה אפשרויות לשימוש עם הפקודהmv
:
- -אֲנִי: מציג הודעת אזהרה לפני החלפת קובץ
- -ו: אינו מבקש אישור לפני ההחלפה. זה קצת כמו התנהגות ברירת המחדל של
mv
. - -v: מציג את מה שהפקודה עשתה
⚠️ תשומת לב:אם אתה משתמש באפשרויות-וet-אֲנִיבו זמנית, האפשרות האחרונה שצוינה תקבל עדיפות.
למידע נוסף עלmv
, אני מזמין אותך להקלידman mv
בטרמינל שלך אועיין במדריך coreutils.
ההזמנהrename
כדי לשנות שמות של קבצים מרובים בלינוקס
rename
מהווה חלופה לmv
כדי לשנות שמות של קבצים מרובים בהתבסס על ביטויי Perl. לאחר שליטה בתחביר שלו, הוא יהיה חזק יותר ופשוט יותר לשימוש עבור סוג זה של פעולה.
ראשית, התקן את החבילהrename
. דרום דביאן:
sudo apt install rename
לאחר מכן תוכל להשתמשrename
. הנה כמה דוגמאות. נתחיל בשינוי שמות כל הקבצים.pdfב.txtממוקם בספרייה:
rename -v 's/.pdf/.txt/' *.pdf
כדי לבדוק את תוצאת הפקודה מבלי לשנות את שם הקבצים שלך, השתמש באפשרות-נ:
rename -n 's/.txt/.pdf/' *.txt
החלף חלק משם קובץ. לדוגמה, "קובץ" על ידי "קובץ" של כל ה-.txt:
rename -v 's/fichier/file/' *.txt
המרת שמות קבצים לאותיות רישיות בספרייה:
rename -v 'y/a-z/A-Z/' *
המרת שמות קבצים לאותיות קטנות בספריה:
rename -v 'y/A-Z/a-z/' *