Using gnu find, I think this is what you want. It finds all real files, not directories (-type f), and for each it prints the file name (% p), tab (\ t), size in kilobytes (% k), suffix "KB", and then newline (\ n).
find . -type f -printf '%p\t%k KB\n'
If the printf command does not format things the way you want, you can use exec, and then the command you want to execute for each file. Use {} for the file name and end the command with a semicolon (;). In most shells, all three of these characters must be escaped with a backslash.
Here's a simple solution that finds and prints them using "ls -lh", which will show you the size in readable form (k for kilobytes, M for megabytes):
find . -type f -exec ls -lh \{\} \;
As another alternative, "wc -c" will print the number of characters (bytes) in the file:
find . -type f -exec wc -c \{\} \;
dmazzoni Sep 15 '08 at 17:08 2008-09-15 17:08
source share