Wildcard on redirection

Ralf Mardorf ralf.mardorf at rocketmail.com
Sat Aug 5 12:27:58 UTC 2017


On Sat, 5 Aug 2017 14:13:06 +0200, Ralf Mardorf wrote:
>On Sat, 5 Aug 2017 13:58:50 +0200, Jos Chrispijn wrote:
>>I have this number of .log files which I would like to empty.
>>
>>Using
>>
>>echo > *.log
>>
>>unfortunately doesn't work so I created
>>
>>foreach file in (/myfiles/log/*log)
>>   echo "" > $file
>>end
>>
>>but that sequence is not recognized at all.
>>
>>Can you tell me how to solve? Thanks!  
>
>I suspect the dot isn't useful at all, I guess with or without the dot
>"analog" would be "*log", too, but actually your shell might treat the
>dot in a different way.
>
>However
>
>echo "" | tee *log
>
>does the trick.
>
>https://www.freebsd.org/cgi/man.cgi?query=tee&sektion=1&apropos=0&manpath=redhat

Oops, I'm at least mistaken for bash, but you unlikely use bash, right?

$ cd /tmp/
$ echo "12342" > 1.log; echo "1234" > analog
$ cat *log
12342
1234
$ cat *.log
12342
$ echo "" | tee *.log

$ cat *.log

$ cat *log

1234

so the dot makes a difference. I was confusing it with the dot at
the beginning of a file and the asterisk as wildcard in front of the
dot or without the dot, when using "ls" in bash.


More information about the freebsd-questions mailing list