I'm sure this is trivial but I've got a bizarre issue when using the printf construct. If I use the -or filter in a find statement with printf then the original filter in the or is ignored and I don't understand why this is.
for example the following command works fine:
Code:
[lisa@LISAXPS410FEDORA ~]$ find ~/Downloads/gpodder/ -name *.mp4 -or -name *.mp3
~/Downloads/gpodder/EpicBattleAxe » Podcasts/taf-057.mp3
~/Downloads/gpodder/EpicBattleAxe » Podcasts/EpicBattleAxe-ebc141147.mp4
~/Downloads/gpodder/EpicBattleAxe » Podcasts/taf-056.mp3
These paths have spaces so I need to format the output of find so they are not seperated by newlines. I do this by specifying the -printf %p\; parameter.
However, when I introduce this logic, the find ignores the -or filter:
Code:
[lisa@LISAXPS410FEDORA ~]$ find ~/Downloads/gpodder/ -name *.mp4 -or -name *.mp3 -printf %p\;
~/Downloads/gpodder/EpicBattleAxe » Podcasts/taf-057.mp3;~/Downloads/gpodder/EpicBattleAxe » Podcasts/taf-056.mp3;
As you can see the -name *.mp4 filter is suddenly being ignored. I've tried this several times with several -or filters and they all seem to be ignored other than the last one.
Can anyome explain what I'm screwing up here?