Anonymous : |
אתה יכול לנסות לכתוב סקריפט באש שיוצר symbolic link לכל אחד מהם בתיקייה ייעודית, ולהציג אותה... |
קוד: |
cat images.txt | xargs eog |
קוד: |
#!/bin/sh locate *png * jpg *gif > locate.txt # gather all png jpg gif full path in a file grep '.png\|.gif\|.jpg' locate.txt > pics.txt #get only pics files head -n 1000 pics.txt > limited.txt # limit to 1000 links #create links mkdir tmp i=0 while read f; do i=$(( $i + 1 )) ln -s $f tmp/$i done < limited.txt nautilus tmp |
קוד: |
locate -r '.*\.png$' -r '.*\.jpg$ -r '.*\.gif$' -l 1000 > locate.txt |
קוד: |
#!/bin/bash mkdir tmp i=0 while read f; do i=$(( $i + 1 )) ln -s $f tmp/$i done < <(locate -r '.*\.png$' -r '.*\.jpg$ -r '.*\.gif$' -l 1000 -e) nautilus tmp |
קוד: |
ln -s "$f" tmp/$i |
קוד: |
ln -s -- "$f" tmp/$i |
queency : |
הייתי צריך לתקן את השורה :
1) אפוסטרוף לא במקום הנכון 2) סוגרים כפולים done < <((locate -r '.*\.png$' -r '.*\.jpg$' -r '.*\.gif$' -l 1000 -e)) |
ציטוט: |
ולמה ה> > מופרד ? |
קוד: |
<(command) |
queency : |
הייתי צריך לתקן את השורה
2) סוגרים כפולים |
Anonymous : | ||
רק אחר כך שמתי לב: למה אתה מתכוון בסוגריים כפולים? הסוגריים סביב לפקודה (מה שמתחיל ב-locate) צריכים להיות בודדים - כלומר סוגר אחד ימני ואחד שמאלי. אם הוספת עוד עטיפה של סוגריים, כנראה זה גורם לפקודה לרוץ ב-sub shell, זה אולי עובד אבל זה מיותר. |
צפריר : |
לא ברור לי למה נדרש כאן process substitution. |
קוד: |
sort <(echo hello) <(echo world) |
קוד: |
#!/bin/bash my_cmd() { for i in $(seq 10); do echo $i sleep 1 done } echo 'process substitution (asynchronous):' while read line; do echo 'line:' $line done < <(my_cmd) echo 'using pipe (asynchronous too):' my_cmd | while read line; do echo 'line:' $line done echo 'command substitution (synchronous):' for line in $(my_cmd); do echo 'line:' $line done |
ציטוט: |
הרי מורצת כאן פקודה והפלט שלה מתקבל ללולאה כקלט. כלומר: הלולאה מורצת בתת תהליך שהקלט שלו הוא שפלט של הפקודה האמורה.
וכן. הלולאה מורצת בתת תהליך. זה אומר שאם היא משנה ערך של משתנה, זה לא ישפיע מחוץ ללולאה. |
queency : |
עמית: אל תשאל לאן שלחת אותי עם ה mktemp הזה שלך |
ציטוט: |
בקיצור: ניסיתי את הדוגמא של התקפת לינק על /etc/passwd שmktemp אמור בעצם להגן עליו ובסיום ההליך הלך לי קובץ הסיסמאות . |
קוד: |
ln -s $f tmp/$i |
קוד: |
echo 'ln -s' $f tmp/$i |
קוד: |
#!/bin/bash tmpdir=`mktemp -d /run/shm/tmpXXX` i=0 while read f; do i=$(( $i + 1 )) ln -s $f $tmpdir/$i done < <((locate -r '.*\.png$' -r '.*\.jpg$' -r '.*\.gif$' -l 1000 -e)) nautilus $tmpdir |
queency : |
יש לי בעיה אחת . עדין לא הבנתי את ה "> >" |
קוד: |
cat ~/.bashrc |
קוד: |
cat < ~/.bashrc |
קוד: |
echo hello > my-file |
קוד: |
<(command) |
קוד: |
(( i++ )) |