לא שמתי שום דבר מ לְהַכּוֹתוזה שכשאני נכנס לעולם המופלא של פייתון שכחתי קצת את החבר האחר הזה שעזר לי כל כך הרבה 🙂
כאן שמתי משהו לחובבי ה- Bash, כמו שאומרת הכותרת ... אני אראה לך כיצד לבדוק אם יש קובץ או תיקיה במערכת או רק באמצעות: if
אנו הולכים ליצור קובץ .sh ולתת לו הרשאות ביצוע, לשם כך פשוט שים את הפקודה הבאה במסוף:
מגע test.sh && chmod + x test.sh
זה שהוא עשה זה ליצור את הקובץ (test test.sh) וגם נותן לך הרשאות ביצוע (chmod + x test.sh)
אז בוא נכתוב בו את הדברים הבאים:
if [ -d /opt/ ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
מה זה?
פשוט 😀
בשורה הראשונה - » אם [-d / opt /];
כאן אנו שואלים, האם המדריך / opt / קיים? כן ספריה / תיקיה, כי -d פירושו ספריה או תיקיה.
ואז אם הוא קיים נדפיס בטרמינל «כן, זה אכן קיים.»(זו שורה 2 ו- 3)
אחרת ו / opt / לא קיים, אז נדפיס «לא זה לא קיים»(שורות 4 ו -5)
ואז בשורה האחרונה (מספר 6) נסגור את ה- if וזהו.
ערכו את הבדיקה, זה יראה לכם / opt / אכן קיים.
אם אתה רוצה שאראה לך את הטקסט האחר (זה שלא קיים) שנה / בחר / עבור כל תיקיה אחרת שלא קיימת במערכת שלך, למשל: / asd /
כפי שאתה יכול לראות, -d עוזר לנו לדעת אם הספריה קיימת, ובכן, אם אנו משנים -d ל -f זה לבדוק את קיומם של קבצים (-d = ספריה, -f = קובץ / קובץ)
לדוגמה:
if [ -f /etc/hosts ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
הנה רשימת האפשרויות:
-d - »בדוק אם קיימת ספרייה מסוימת
-f - »בדוק אם קיים קובץ מסוים
-w - »בדוק אם לקובץ מסוים יש הרשאות כתיבה
-x - »בדוק אם לקובץ מסוים יש הרשאות ביצוע.
ובכן אין עוד הרבה מה להוסיף 🙂
אני יודע שזה יהיה מאוד שימושי ומעניין עבור אלה שאוהבים לתכנת בבש 😉
לגבי
דרך נוספת לעשות את זה בלי אם ... אז ..
test -f /etc/hosts && elcomando
או גם
test ! -f /etc/hosts && echo "no se encontró el archivo"
וכו.
נכון 😀
... O_O ... האם אתה הוגו, הוגו מקובה? ... באמצעות Windows8, WTF !!!
ובכן כן, אני מכיר את מערכת ההפעלה הזו ואם אני צריך להיות גלוי לב, הדבר היחיד שמצאתי שימושי הוא מנהל ההעתקים, אחרת אני אישית מוצא שזה כאב, במיוחד הממשק ההיברידי שלו ויישומי המטרו. אני אוהב את זה פחות מ- Vista ו- 7 (אם כי קצת יותר יעיל מאלה), שגם אני לא אהבתי. כל מה שאני משתמש בו הוא לשחק NFS13 ו- Skyrim, אבל מערכת ההפעלה הזו לוקחת כל כך הרבה מקום שהייתי צריך למחוק את מחיצת הלינוקס שלי [snif].
עם זאת, בשביל השקט הנפשי, אני אגיד לך שלשום שליד הורדתי את ה- Arch ISO לחודש ינואר ואני מתכנן לעשות לו בדיקה קטנה בגרסת ה- x86-64 שלו, ברגע שאקבל את ה- repo (יהיה לך את זה?). עכשיו, כשראיתי שהוא משתמש בחבילות חתומות כברירת מחדל, זה נותן לי יותר ביטחון לצלול פנימה.
ואבי גם אמר לי שהוא ישלח לי Sony Xperia, שאותו אני רוצה לנצל כדי ללמוד קצת תכנות לאנדרואיד, שהיה משאלה ממתינים. אז תירגעי, עדיין לא הלכתי לצד האפל של הכוח, בואההההה 😉
מבחן גבר
בטח.
וונאות! ..
נוכל ליצור את אותו אחד .. ..אבל הספריה מועברת כפרמטר ..
if [ -d $1 ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
ואנחנו קוראים לזה כ:
./test.sh / opt /
בְּרָכָה..
IF אינו מחזור xD
זה מתאים לי כמו כפפה ליד לתסריט שאני עושה. האם תקף להשתמש בתווים כלליים? לדוגמא, כדי לברר אם יש .mp4s ואז להריץ עליהם משהו.
אם [-f * .mp4];
...
כן, זה תקף לחלוטין ..
אפילו דרך פרמטרים .. "* .mp4"
לדוגמה:
if [ -f $1 ];
then
rm -r $1
else
ls
fi
אם אתה קורא לזה: ./test.sh * .mp4
אם הוא מוצא קבצי .mp4, הוא מוחק אותם ... ... אך הוא לא מפרט את הקבצים בספרייה זו ...
תודה על המשוב והטיפים! 🙂
פספסת את ה- f xD
rm -rf $ 1
זה יותר מרגש!
נפלא !!!, כל יום אני מתאהב יותר בלינוקס, חלונות הועברו לאיזו פינה חשוכה של הכונן הקשיח שלי, שעומד להימחק כדי לפנות את מקומה לאור לינוקס.
מצוין! .. .. ואז קח את הצעד הבא .. ותוציא אותו ..
לפני 6 חודשים בערך יש לי רק GNU / Linux בכל המכונות שלי ואני לא צריך יותר .. .. לא W $ .. או יין .. .. ואני יותר משמח ככה .. 😉
ואני מדביק את הסביבה שלי .. מכיוון שכולם רואים אותי עם הקשת שלי, מהיר, יעיל ומאושר .. .. והם מבקשים ממני להתקין את לינוקס .. .. כן! .. 😀
אתה יכול גם לבדוק אם יש הרחבות שונות, אתה יכול להשתמש במשהו כמו
#! / bin / bash
מדריך = $ HOME / הורדות
אם [$ Directory]; לאחר מכן
הד "הנה רשימה של סוגי קבצים:"
הד "mp1, mp2, mp3, mp4, wav, flac, flaad, aud, midi"
ls {* .mp ?, *. wav, *. fla, *. aud * .midi}
fi
השימוש ב- {} מאפשר לך לציין מספר הרחבות במקרה זה, השימוש ב- "?" , הוא תו כללי, המאפשר לך לקחת "כל תו".
אני מקווה שזה יעזור לך
אני ממליץ על הפקודה find [directory] [search_pattern] –exec [command] {} \
זה לא עובד, שמתי את הקבצים האלה בספריה:
AB20160420.TXT
AB20160421.TXT
AB20160422.TXT
AB20160423.TXT
AB20160424.TXT
AB20160425.TXT
search.sh
#! / bin / bash
PATH = / tmp / TEST
cd $ ROUTE
ls -la | awk '{הדפס »« $ 9}'
אם [[-F AB.טקסט]]; לאחר מכן
הד »הזן IF אם יש AB.טקסט "
fi
אם [-f AB20160422.TXT]; לאחר מכן
הד "קלט לקובץ AB ספציפי"
fi
כאשר שמתי את [-f AB.TXT] נותן שגיאה
כשאני שם את [[-f AB.TXT]] אינו נותן שגיאה אך אינו מוצא את הקובץ
זה עובד רק כשאני שם קובץ ספציפי, למשל:
אם [-f AB20160422.TXT]; לאחר מכן
אני לא מצליח לגרום לזה לעבוד עם תווים כלליים * או?
#! / usr / bin / env bash
#.קידוד = utf-8.
משתתפים
EXIT_OK = 0
EXIT_BAD = 66
BOLD = »\ 033 [1m»
NC = »\ 033 [0m»
אדום = »\ 033 [31 מ '»
אם [! "$ 1"];
אז
הד "חסר פרמטר"
צא מ- $ EXIT_BAD
fi
תקליטור "$ 1"
קבצים = »ls -h1 $ 1»
לקובץ ב- $ ($ files); לַעֲשׂוֹת
הד - e "אתה יכול לעשות הכל עם קובץ $ BOLD $ $ nc כאן"
עשה
צא מ- $ EXIT_OK
@KZ, ספר עוד על כך: «וזה בגלל שאני נכנס לעולם הנפלא של פייתון»!
HAHAHAHA לא ... לאט לאט 🙂
אני עדיין רק טירון לפייתון, בקושי יש לי זמן להקדיש לזה שעות על גבי שעות, אז אני איטי כן, איטי אבל בטוח בלימוד שלי 😀
תודה רבה 😀 רק אתמול חשבתי לעשות זאת.
זה עם קללות זה נהדר
במילה אחת ... מעולה!
במשך זמן רב שיכללתי סקריפט לביצוע הורדות מהאינטרנט, אך עמדתי בפני הבעיה שהוא הוריד את הקבצים שביקשה 1 ושוב מבלי שהצליח לאמת את קיומו של 1ro.
טוטו טוב מאוד.
תרומה אדירה, כאן מצ'ילה מוערכת.
כל יום עוד LINUX מפתיע אותי לטובה,
תחי תוכנה חופשית MIERDAAAA.
לְכַהֵן
בדוק אם קובץ הוא מספריה
אם אני רוצה לבדוק את קיומו של קובץ כלשהו בנתיב «/ tmp / receivers», בצע פקודה כלשהי, איך זה יהיה?
אני אהיה אסיר תודה
לגבי
יקר, ולקבוע לפי IF אם הקובץ מאוכלס במלואו ???. אני שואל את זה מכיוון שכשאתה ממלא את הקובץ להעברה, זה יכול לקחת את זה אפילו עם מחצית הנתונים.
ברכות ותודה על תגובתך.
ובכן אני חושב שכדאי להוסיף דוגמא, כמו למשל "בדוק שאין" קובץ "או" ספריה "כמו למשל
כדי לבדוק שהוא אינו קיים, למשל השתמש במשתנה->
מדריך
#! / bin / bash
מדריך = »$ HOME / מדריך בדיקות»
קובץ = »$ HOME / קובץ בדיקה»
אם [! -d "$ Directory"]; לאחר מכן
הד "אין $ Directory"
הד "יצירת ->" $ Directory "
mkdir "$ Directory"
אחר
הד "מדריך" $ Directory "כבר קיים
fi
אם [! -ד "$ File"]; לאחר מכן
הד "הקובץ $ לא קיים"
הד "יצירה ->" $ File "
גע ב- "$ File"
אחר
הד "קובץ" $ File "כבר קיים
fi
כאשר אתה מבצע את ה- mkdir בדוק מאוחר יותר אם המסוף יכול ליצור אותו מכיוון שהוא יכול לשבור את הכדורים אם זו תיקיה כשורש או מערכת hhah
ברכות KZKG ^ גאארה שאילתה איך אעשה כדי להשתמש בתלתל. הייתי רוצה לדעת איך אני עושה מהקונסולה ועד פינג url כדי לראות אם היא זמינה למשל http://portal.com/directorio/archivo1.php היכן ש- file1 יאחסן את ה- ip של הביקורים נועד לניטור צוות שאני צריך להכין את הסיכה כל חצי שעה כדי שאהיה מודע ל- ip הציבורי מכיוון שהוא משתנה מעת לעת ולא אוכל להתחבר באמצעות ssh .
ברכות תודה מראש אלוהים יברך אותך.
שלום כזה,
ראשית, אתה צריך לומר שמשתנה ה- IP (למשל) הוא התוכן של אותו קובץ, בשביל זה אתה צריך:
1. הורד את הקובץ
2. צפו בתוכנו וקבלו את ה- IP משם
3. כי ה- IP הוא המשתנה
לדוגמה:
כאן אנו מורידים את הקובץ - »wget http://portal.com/directorio/archivo1.php -o file.html
לאחר מכן אנו מקצים למשתנה את תוכנו: - »: $ {IP: =` cat file.html`}
.. בהנחה שלתוכן הקובץ הזה יש רק את ה- IP, אם לא, תצטרך לעבוד עם grep, awk או head.
ברגע שיש לך את ה- IP כמשתנה, השאר הוא הדבר הכי פשוט בעולם 🙂
אם אתה רוצה, כתוב לי באימייל (kzkggaara[at]desdelinux[dot]net) אשמח לעזור לך
תודה רבה לך kzkggaara אסיר תודה.
שלום, אני לא מבין הרבה במחשוב ואני לא יודע אם ערך זה קשור לבעיה שיש לי.
אני מגיב למקרה שקראת אותי, למרות שהפוסט הוא מלפני שנה:
מתברר שיצרתי תיקיה על שולחן העבודה שלי לאחסון כמה קטעי וידאו. ובכן, מחקתי את הסרטונים האלה כי אני כבר לא צריך אותם ועכשיו התיקיה הזו אומרת לי שהיא לא קיימת (למרות שהיא נראית על שולחן העבודה שלי).
- זו הבעיה הראשונה שיש לי:
אני לא יכול למחוק את התיקיה.
- בעיה שנייה ואני חושב שחשוב יותר:
בניסיון למחוק את התיקיה, שמתי תיקיית PHOTOS. עכשיו כשאני פותח את התיקיה ש"לא קיימת "היא ריקה והתמונות לא שם.
כיצד אוכל לשחזר את התמונות? נתתי את האפשרות בתוך התיקיה "הצג מסמכים מוסתרים" אך תיקיית התמונות לא מופיעה.
אני מקווה שתוכלו לדעת איך זה נפתר.
תודה.
ישנם שני משתמשים שהם העיקריים: root ו- your_user (למשל natalia). לשניהם תיקיות אישיות. המשתמש שלך ב- / home ושורש ב- / (ספריית השורש). בלחיצה ימנית על התיקיה ראה למי היא שייכת. אם זה שורש עם מנהל הקבצים שלך באמצעות sudo או gksu או kdesu תלוי בסביבה בה אתה משתמש עבור לספריית השורש -> root -> Desktop וכנראה תמצא את התמונות ותוכל למחוק את התיקיה. הפצות מסוימות כאשר אינך הבעלים של הקובץ או הספריה ואין לך הרשאות גישה אומרות לך שהספריה / הקובץ אינם קיימים. אם אתה הבעלים ואינך שורש, עשה את אותו הדבר עם מנהל הקבצים עם sudo וכו 'ועבור לספריית הבסיס -> / home -> personal_folder -> שולחן העבודה ובדוק אם התמונות קיימות ואם אתה יכול למחוק את התיקיה.
אם זה לא עובד, תצטרך לראות אפשרויות אחרות מהטרמינל (קונסולה).
שלום מה שלומך אני עושה עבודה בבאש והייתי רוצה לדעת לבדוק אם נכנסת ספרייה מהמקלדת למשל
#! / bin / bash
לקרוא מסלול
# הזן ~ / שולחן עבודה
# ואז אני מנסה לנווט בספריה הזו
נתיב cd $
# אני מקבל את ההודעה הבאה: cd: ~ / Desktop: הקובץ או הספריה אינם קיימים
השאלה שלי היא, מה אני יכול לעשות כדי שאכניס אותו מהמקלדת ואקח אותו כנתיב ספריה?
ואיך אוכל לדעת אם יש קבוצה,
טוב יש לי בעיה ב- canaima שלי כשאני לוחץ על כפתור cunaguaro זה אומר שאין שום קובץ או ספריה כפי שזה היה עושה כדי לפתור את הבעיה והשאר לא נפתח cunaguaro בבקשה תודה.
איך עושים את ה- if ב- BASH אם שם הקובץ מכיל רווחים?
לדוגמה:
נתוני אפריל. Xlsx
לשאול אם הקובץ קיים
קרלוס, ככה:
אם [["$ משתנה" == נתונים \ חודש \ של \ April.xlsx]]; ואז מהדהד 'התאמה'; fi
אתה יכול גם:
אם [["$ משתנה" == 'נתונים לחודש אפריל. xlsx']]; ואז מהדהד 'התאמה'; fi
אפשרות נוספת:
[[«$ Variable» == 'נתונים עבור April.xlsx']] && echo 'matches' || הד 'לא תואם'
באזורים כהים מסוימים באינטרנט מומלץ להשתמש [[]] במקום [], ואם אתה משווה מספרים אז: ((משתנה> = 3)) && echo 'משתנה גדול או שווה ל- 3' || הד 'משתנה הוא פחות מ -3'
לכן, למספרים:
אם ((מספר! = 4)); ואז ההד "$ {number} אינו 4"; אחרת ההד "$ {number} הוא 4"; fi
כיצד ניתן ליצור קוד לאימות אם בספריה יש טקסט ספציפי, כדי להיות מסוגל לערוך אותו.
לדוגמה:
אם (טקסט 1)
לעשות כלום
אחר
שנה טקסט 1 לטקסט 2
שאלה, איך יהיה לי לבדוק כל 15 שניות אם הקובץ קיים או לא, תודה.
שלום,
זֶה:
אם [-w / home / Komun / Logs / ti]; לאחר מכן
גלה אם הקובץ ניתן לכתב. אבל זה מבוסס על הרשאות משתמש. האם ניתן לעשות זאת כדי לברר אם לקבוצה או לאחרים יש הרשאות?