ShellScript
shell

shell でディレクトリ内のファイルに対してループ処理

あるディレクトリ内でファイル一覧に対して同じ処理をしたい時のループの書き方

for file in `\find . -maxdepth 1 -type f`; do

# TODO
done

\find . -maxdepth 1 -type f

カレントディレクトリの’ファイル’のみを取得している

\ls -F | grep -v /

でもファイルを絞り込めるが実行可能ファイルに「*」がついたりする



中身を結合してファイルに出力

for file in `\find . -maxdepth 1 -type f`; do

cat $file >> out
done


再帰的にtxt のみファイルに出力して削除

for file in `\find . -name '*.txt'`; do

cat $file >> out
rm $file
done


png のみ バックアップ

for file in `\find . -maxdepth 1 -name '*.png'`; do

cp $file $file.tmp
done