קטונתי מלתת פה טיפים אבל פשוט יש משהו שפשוט תמיד הפריע לי ב- bash: איך עושים rename ווינדוס סטייל (ren *.c *.bak) למשל כי mv במקרה הזה יעשה נזק בלתי הפיך:
בכל מקרה זה עשוי להיות בעייתי אם יש בשם הקובץ יותר מנקודה אחת.
לא זה יקח את המחורזת הארוכה ביותר שהוא מוצא, לכן אין בעיה עם יותר מנקודה אחת.
לגבי rename זה פחות "טבעי" בשבילי (אני לא בטוח שאנחנו מדברים על אותו rename) ובכל מקרה זה יותר גמיש כי ניתן לשלב את זה למשל עם find.
כאמור זה מימוש מסויים שנראה לי מועיל אבל את החיתוך של מחרוזות ניתן להשתמש ב- bash גם לצרכים אחרים. אגב שימוש ב- ## במקום ב- %% יחתוך את המחרוזת מתחילתה (כלומר מהמקום בו נמצאה התאמה).
זה נכון במקרים של שמות כמו .c, אך מה שחשבתי עליו הוא משהו כללי יותר (למקרה הפרטי הנ"ל הז כמובן בסדר), בסגנון code.tar.gz זה משנה ל-code.bak ואז בעייתי מבחינת זיהוי הקובץ.
בעיה נוספת היא מה קורה כאשר רוצים להעביר שני סוגי קבצים עם שמות שונים ל-bak. כגון foo.c ו-foo.h במקרה כזה אחד יילך לאיבוד. משער שהאסטרטגיה הנכונה תהיה פשוט להוסיף את ה-bak בסוף.
ואם רוצים להתאים את זה לסוגי קבצי שונים לא לשכוח לעטוף בגרשיים את שמות הקבצים ב-mv כדי לטפל נכונה בקבצים עם רווחים בשם.