find . -type f -user silviya|ls -lh|head -1
you're piping the output of
ls doesn't read its input. It takes the list of files to list as arguments. In the absence of arguments like here, it lists the non-hidden files in the current directory. So here, you get the disk usage of all the non-hidden files (of any type) in the current directory (with the size of a given file counted for each of its hard links).
find . -type f -user agalya|wc -c
You're counting the number of bytes in the output of
find, so that's the size of the file paths (and newline delimiters), not their disk usage nor file size.
find . -type f -user agalya|du -sk
du takes the file list as arguments, not from its input. So here, you get the disk usage of all the files and directories in the current directory (recursively).
To get the disk usage of all regular files owned by
agalya, with GNU utilities, you'd do:
find . -type f -user agalya -print0 | du -hc --files0-from=- | tail -n 1
du only) to take the file list from standard input (represented by
-c gives the cumulative size (note that hard links of a same file are counted only once).
To get the file apparent size as opposed to disk usage, add the
--apparent-size option to
du (again, GNU specific). Add the
-l option (also GNU-specific) to count hard links several times.