Мне нужно получить список имен файлов с ненулевым размером внутри каталога. Это должно быть в сценарии оболочки, поэтому идеально подойдет bash (или однострочный Perl).
find /path/to/dir -type f -size +0
find /searchdir -type f -size +0c
найдет файлы размером один или более байтов в /searchdir
и ниже.
Только оболочка, избегая поиска, без рекурсии в подкаталоги:
bash (для неустановленного GLOBIGNORE):
for file in .* *; do
test . = "$file" && continue
test .. = "$file" && continue
# if you just want real files, no symlinks
# test -L "$file" && continue
test -f "$file" || continue
test -s "$file" || continue
# here do what you want with what is left
done