Zuerst möchte ich mich bedanken für die vielen Hilfestellungen
Also mit dem Script könnt ihr euch eine "Testumgebung" erstellen, damit ihr nicht alles reinklopfen müßt.
#!/bin/sh
mkdir testsilent
cd testsilent
touch test.txt
touch test.gif
touch test.jpg
touch eine\ datei\ mit\ space
mkdir directory1
mkdir directory2
mkdir directory3
cp test.txt directory1/test1.txt
cp test.txt directory2/test2.txt
cp test.txt directory3/test3.txt
Alles anzeigen
sollte dann so aussehen
jupiter testsilent $ ls -R
.:
directory1 directory3 test.gif test.txt
directory2 eine datei mit space test.jpg
./directory1:
test1.txt
./directory2:
test2.txt
./directory3:
test3.txt
jupiter testsilent $
Alles anzeigen
@marauder
die Lösung sehe ich als "Workaround", funktioniert natürlich auch
richtig wäre allerdings
find / |grep -e *.gif -e *.jpg
marvel
Schande über mich, danke jetzt weiß ich endlich, was die da ganz unten in der Man-Page damit meinen
jupiter testsilent $ find . -name *.gif -o -name *.jpg
./test.gif
./test.jpg
jupiter testsilent $
flosch
zwar auch ein Workaround aber geht
jupiter testsilent $ find . -name eine* | sed s/' '/'\\ '/g
./eine\ datei\ mit\ space
jupiter testsilent $
die 2. lösung geht bei mir nicht
jupiter testsilent $ find . -name eine* | sed s/^/\'/ | sed s/$/\'/
'./eine datei mit space'
jupiter testsilent $
@hulk
Sorry die Antwort zu Frage 2 gefällt mir eigentlich nicht, net böse sein
Die Antwort zu Frage 3
jupiter testsilent $ find . -not -name directory2
.
./test.txt
./test.gif
./test.jpg
./eine datei mit space
./directory1
./directory1/test1.txt
./directory2/test2.txt
./directory3
./directory3/test3.txt
jupiter testsilent $ find . -not -name directory2
Alles anzeigen
Da läßt er zwar das Directory2 aus jedoch nicht den Inhalt ==> das will ich eigentlich nicht
knebb
Die IFS Variable gibts bei mir nicht und sie ändert auch nichts
jupiter testsilent $ export IFS
jupiter testsilent $ find . -name eine*
./eine datei mit space
jupiter testsilent $ export IFS="
> "
jupiter testsilent $ find . -name eine*
./eine datei mit space
jupiter testsilent $
zu Frage 2
funktioniert bei mir auch nicht
jupiter testsilent $ find . -regex "^.*(\.gif|\.jpg)$"
jupiter testsilent $ ls
directory1 directory3 test.gif test.txt
directory2 eine datei mit space test.jpg
jupiter testsilent $
zu Frage 3
da läßt er das directory2 nicht aus, zumindest bei mir
jupiter testsilent $ find . -type d |grep -E {dir*2}| xargs find
.
./test.txt
./test.gif
./test.jpg
./eine datei mit space
./directory1
./directory1/test1.txt
./directory2
./directory2/test2.txt
./directory3
./directory3/test3.txt
jupiter testsilent $
Alles anzeigen
ulho
aw 1 geht nicht
jupiter testsilent $ find . -name eine* -exec echo \'\{\}\' \;
'./eine datei mit space'
jupiter testsilent $
aw 2 funktioniert, siehe oben
zu aw 3
warum hier nur die 3. Variante geht kapier ich zwar nicht ganz, aber zumindest funktioniert's :gaga
jupiter testsilent $ find . -path './directory1' -prune
./directory1
jupiter testsilent $ find . -path './directory1' -prune -exec echo {} \;
./directory1
jupiter testsilent $ find . -path './directory1' -prune -o -exec echo {} \;
.
./test.txt
./test.gif
./test.jpg
./eine datei mit space
./directory2
./directory2/test2.txt
./directory3
./directory3/test3.txt
Alles anzeigen
Wie schon man sich die Zeit mit find verteibern kann.
Danke
Silent