Vous pouvez utiliser find
(page de manuel) pour accomplir ceci :
find -name "*.java" -exec cat {} \;
Vous pouvez également ajouter un -print
avant le -exec
pour imprimer le nom du fichier avant chaque opération cat
find . -name "*.java" -print0 | xargs -0 cat
shopt -s globstar
cat **/*.java >> all_course.txt
Ce fichier all_course sera un peu en désordre. Vous souhaitez probablement ajouter des en-têtes ou des pieds de page :
for f in **/*.java; do
echo "/* *********************************"
echo " * $f"
echo " * *********************************/"
echo ""
cat "$f"
echo ""
echo "/* *********************************"
echo " * $f"
echo " * *********************************/"
echo ""
echo ""
done > all_course.txt