לפעמים אתה צריך הסר כמעט את כל הקבצים מספרייה, אבל אתה רוצה לשמור על אחד או כמה מהם. כשיש מספר גדול מהם, ללכת בזה אחר זה זו משימה מייגעת. זו לא האפשרות הטובה ביותר, יש דרכים להפוך את העבודה בלינוקס להרבה יותר קלה וכי אתה יכול לחסל את כל אלה שאתה צריך בבת אחת.
לדוגמה, ייתכן שתרצה להסיר רק את אלה שמתחילים בשם מסוים, או כאלה שיש להם סיומת ספציפית וכן הלאה. כל מה שאפשרלמעשה, בהזדמנויות אחרות כבר הראיתי הדרכות דומות ב- LxA. כאן תוכלו לעקוב אחר ההדרכה שלב אחר שלב ובאופן פשוט להיות מסוגלים למחוק את כל אותם קבצים שרוצים, למעט מה שרוצים לשמור.
והדבר הכי טוב זה לא תצטרך להתקין שום תוכנית, ניתן לעשות זאת בקלות באמצעות פקודות כמו rm and find. כלומר, תוכניות שכבר מותקנות מראש בכל הפצת לינוקס. וכמובן, השיטה תתבסס על מציאת דפוסים ושימוש בהתאמות אלה כדי להסיר רק את מה שאתה רוצה.
ובכן, כדי לחסל שם מספר חלופות, מה הם…
הסר קבצים מספריה עם rm
ובכן, על מנת להשתמש ב- פקודת rm כדי לבטל את מה שמתחשק לך, עליך לדעת לפני כמה דרכים לזהות דפוסים:
- * (רשימת תבניות) - תואם לאפס או יותר מופעים של הדפוסים שצוינו
- ? (רשימת תבניות) - תואם לאפס או למופע אחד של הדפוסים שצוינו
- + (רשימת תבניות) - תואם מופע אחד או יותר של הדפוסים שצוינו
- @ (רשימת תבניות) - תואם את אחד הדפוסים שצוינו
- ! (רשימת תבניות) - תואם כל דבר למעט אחד הדפוסים הנתונים
כדי להפעיל את extglob על מנת להשתמש בהם, תחילה עליך לבצע את הפקודה הבאה:
<br data-mce-bogus="1"> shopt -s extglob<br data-mce-bogus="1">
עכשיו אתה יכול להשתמש ב- rm כדי להסיר את כל מה שאתה רוצה. לדוגמה, מחק את כל הקבצים מספרייה למעט אלה שתואמים את השם «Lxa»:
rm -v !("lxa")
אתה יכול גם לציין שני שמות או יותר שאינך רוצה למחוק. לדוגמא, כדי להימנע מהסרת "lxa" ו- "desdelinux":
rm -v !("lxa"|"desdelinux")
אתה יכול למחוק את כל הקבצים, מינוס אלה עם סיומת .mp3. לדוגמה:
rm -v !(*.mp3)
בסוף אתה יכול לחזור ל השבת את:
shopt -u extglob
הסר קבצים מספריה עם Find
אלטרנטיבה נוספת ל- rm היא השתמש במציאה כדי להסיר כל מה שמתחשק לך. אתה יכול להשתמש בצינור וב- xargs עם rm, או להשתמש באפשרות -מחק כדי למצוא. כלומר התחביר הגנרי יהיה:
find /directory/ -type f -not -name 'PATRÓN' -delete find /directory/ -type f -not -name 'PATRÓN' -print0 | xargs -0 -I {} rm [opciones] {}
לדוגמא, דמיין שאתה רוצה מחק את כל הקבצים בספרייה למעט אלה עם הסיומת .jpg, אתה יכול להשתמש באחת משתי הפקודות האלה, מכיוון ששניהם מקבלים את אותה התוצאה:
find . -type f -not -name '*.jpg'-delete find . -type f -not -name '*.jpg' -print0 | xargs -0 -I {} rm -v {}
במקום זאת, אם רצית הוסף תבנית נוספת, גם אתה יכול. לדוגמה, נניח שאינך רוצה להסיר את ה- .pdf או את ה- .odt מספרייה:
find . -type f -not \(-name '*pdf' -or -name '*odt' \) -delete
כמובן, אתה יכול לעשות את אותו הדבר עם | ו- xargs כמו בדוגמה הקודמת. אגב, השתמשנו -לא להכחיש, אבל אתה יכול להסיר את זה כדי להפוך אותו לחיובי, כלומר להסיר את הדפוסים התואמים ולא להוציא אותם.
מחק קבצים מספריה באמצעות המשתנה GLOBIGNORE
לבסוף, יש אלטרנטיבה נוספת כדי למצוא ו- rm, והוא משתמש במשתנה סביבה כדי להצביע על הקבצים שברצונך להסיר או לא לכלול. לדוגמא, דמיין שברצונך למחוק את כל הקבצים בספרייה הנקראת הורדות, ולשמור את קבצי ה- .pdf, .mp3 ו- .mp4. במקרה כזה, תוכל לבצע את הפעולות הבאות:
cd Descargas GLOBIGNORE=*.pdf:*.mp4:.*mp3 rm -v * unset GLOBIGNORE