Bash Tips
986 subscribers
14 photos
4 files
45 links
רוצים להשתמש בלינוקס אבל לא ממש מכירים את הכלים שהיא מספקת לעבודה?

בערוץ הבא תמצאו אוסף טיפים שימושיים ב-Bash והכרות עם כלים שונים שעשויים לחסוך מאמץ ועבודה בכתיבת סקריפטים ומימוש אוטומציות.
Download Telegram
כמה דברים שיתכן ולא ידעתם על tree
רמת קושי: #beginners

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

~/snap $ tree
.
├── audacity
│ └── current -> 532
├── blender
│ ├── 38
│ ├── common
│ └── current -> 38
├── code
│ ├── 33
│ ├── common
│ └── current -> 33
...

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

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

$ tree -I 'node_modules|npm|test_*'

יש לפקודה עוד כמה אפשרויות חביבות להלן בקצרה

להגדיר עומק
ישנה אפשרות להגדיר כמה עומק רוצים להציג בעץ התיקיות על ידי שימוש בדגל 3 L- שאומר בעצם תציג לי עד עומק של 3 תיקיות.

להציג רק תיקיות

$ tree -d
.
├── charts-external
│ ├── yoyo
│ │ ├── docker
│ │ │ └── postgres-postgis
│ │ └── templates
│ ├── cluster-admin.
├── charts-external
│ ├── yoyo
...

להציג תוכן על ידי תבנית

$ tree -P '*.sh'
...
├── force_update.sh
├── functions.sh
├── helm_healthcheck.sh
├── helm_lint_all.sh
...
הצגת הרשאות בדומה לls

$ tree -p
...
├── [-rwxrwxr-x] force_update.sh
├── [-rw-rw-r--] functions.sh
├── [-rwxrwxr-x] helm_healthcheck.sh
├── [-rwxrwxr-x] helm_lint_all.sh
...

ואפילו לקבל משקל של כל קובץ

$ tree —du
...
├── [ 532] helm_healthcheck.sh
├── [ 971] helm_lint_all.sh
├── [ 1730] helm_lint_external_chart.sh
├── [ 1673] helm_update_values.sh
├── [ 300] helm_upgrade_all.sh
...

אה רגע רצינו את זה בשפה קריאה לבני אנוש

$ tree —du -h
...
├── [ 532] helm_healthcheck.sh
├── [ 971] helm_lint_all.sh
├── [1.7K] helm_lint_external_chart.sh
├── [1.6K] helm_update_values.sh
├── [ 300] helm_upgrade_all.sh
...


#tree

@bash_tips