I was trying to find all symbolic links in /usr/lib and use file on the first entry in the list, which I delimited with head -n 1.
Why does find /usr/lib -maxdepth 1 -type l | file $(head -n 1) work but find /usr/lib -maxdepth 1 -type l | head -n 1 | file does not?
It complains that I am not using file correctly. Probably because it lacks an argument, but - programmatically/syntactically - why can’t file grab it’s argument from the pipe?


Thanks! I actually did try that, at which point it said “/dev/stdin ASCII text” or the likes, so it’s like the file command literally read the stdin device. Which was extremely intriguing, but not what I wanted. God, I love Linux :D
It’s not like it, it’s exactly it. The output from find is text,
-means read stdin, so file told you the text in stdin was text. You’ll have to see if it takes a list of files as an option, otherwise just use a for loop.