כיצד להסיר את כל הקבצים מלבד אחד מספרייה

למחוק קבצי לינוקס

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

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

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

ובכן, כדי לחסל שם מספר חלופות, מה הם…

הסר קבצים מספריה עם rm

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

  • * (רשימת תבניות) - תואם לאפס או יותר מופעים של הדפוסים שצוינו
  • ? (רשימת תבניות) - תואם לאפס או למופע אחד של הדפוסים שצוינו
  • + (רשימת תבניות) - תואם מופע אחד או יותר של הדפוסים שצוינו
  • @ (רשימת תבניות) - תואם את אחד הדפוסים שצוינו
  • ! (רשימת תבניות) - תואם כל דבר למעט אחד הדפוסים הנתונים

כדי להפעיל את extglob על מנת להשתמש בהם, תחילה עליך לבצע את הפקודה הבאה:

<br data-mce-bogus="1">

shopt -s extglob<br data-mce-bogus="1">

עַיִן! אני לא מציין זאת, אך ההנחה היא כי יש לך הרשאות לבצע פעולות אלה, וכי אתה נמצא בספריה זו כאשר אתה מבצע את הפקודה rm. היזהר בזה, מכיוון שאם אתה מריץ אותו בנתיב אחר, אתה עלול למחוק קבצים שאינך רוצה. כלומר, לפני ביצוע פקודות אלה, וודא שנכנסת לספרייה הרצויה עם cd.

עכשיו אתה יכול להשתמש ב- 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


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי על הנתונים: AB Internet Networks 2008 SL
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.