אנדרואיד

כיצד לקצץ (ריק) קבצים בלינוקס

תוכן עניינים:

Anonim

במצבים מסוימים, ייתכן שתרצה לקצץ (לרוקן) קובץ קיים באורך אפס. במילים פשוטות, גזם קובץ פירושו הסרת תוכן הקובץ מבלי למחוק את הקובץ.

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

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

הפניית מעטפת

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

הפורמט הכללי לקיצוץ קבצים באמצעות הפניה הוא:

: > filename

בוא נשבר את הפקודה:

  • פירוש המעי הגס : true ולא מייצר פלט. מפעיל ההפניה מחדש > מפנה מחדש את הפלט של הפקודה הקודמת לקובץ הנתון. filename , הקובץ שברצונך לקצץ.

אם הקובץ קיים, הוא יקטום לאפס. אחרת, הקובץ ייווצר.

במקום : יכול גם להשתמש בפקודה אחרת שלא מפיקה שום פלט.

להלן דוגמה לשימוש בפקודת cat להפלטת תוכן מכשיר /dev/null , המחזיר רק תו סוף קובץ:

cat /dev/null > filename

פקודה נוספת שניתן להשתמש בה היא echo . האפשרות -n אומרת echo לא להוסיף קו חדש:

echo -n > filename

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

> filename

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

sudo: > /var/log/syslog

bash: /var/log/syslog: Permission denied

ישנם מספר פתרונות המאפשרים הפניה מחדש עם sudo . האפשרות הראשונה יכולה להריץ מעטפת חדשה עם sudo ולבצע פקודה בתוך הקליפה באמצעות הדגל -c :

sudo sh -c '> filename'

אפשרות נוספת היא לצרף את הפלט לפקודה tee , לרומם את הרשאות ה- tee באמצעות sudo , ולכתוב את הפלט הריק לקובץ נתון:

: | sudo tee filename

truncate הפקודה

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

התחביר הכללי לגזירת קבצים לגודל אפס עם הפקודה הקטן הוא כדלקמן:

truncate -s 0 filename

האפשרות -s 0 מגדירה את גודל הקובץ לאפס.

לדוגמה, כדי לרוקן את יומן הגישה ל- Nginx היית משתמש ב:

sudo truncate -s 0 /var/log/nginx/access.log

רוקן את כל קבצי היומן

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

הפקודה הבאה תרוקן קבצים המסתיימים עם ".log" תחת ספריית /var/log :

sudo truncate -s 0 /var/log/**/*.log

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

סיכום

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

מסוף לקצץ