質問
こんにちは
早速ですが6行目
find /home/test/$user -path ’/home/test/$user/include’ -prune ・・・
find /home/test/$user -path "/home/test/$user/include" -prune
ダブルクォーテーションに変えてみてはいかがでしょうか。
検証していませんので他に原因があるかも知れません。すみません。
「ファイル数とファイル容量を集計する」のであれば
$ du -a /home/test//include
でサイズを表示し、
$ du -a /home/test//include|wc -l
で行数を数えてファイル数を数えるのもありかなと思います。
フィルタは必要になりますが。
質問
ファイル数とファイル容量を集計する以下のようなスクリプトを書いたのですが、
除外対象ディレクトリまで集計してしまって困っています。
!/bin/sh
list=
ls /home/test/
for user in $list;do
echo $user
find /home/test/$user -path ’/home/test/$user/include’ -prune -o -type f -printf "%s\n" |perl -ne ’$i++; $byte += $_; $str = "\r$i files, $byte byte"; print $str’
echo ""
done
■やりたいこと
/home/test配下にあるディレクトリごとに、
ファイル数とファイル容量を集計したい。
ただし、/home/test/*/include配下は集計しないようにしたい。
findの動作がシェルによって違うのだと思い、
bashでも試しましたが、駄目でした。。。
以下のようにコマンドラインで直接叩くと、正しく処理されます。
find /home/test/user -path ’/home/test/user/include’ -prune -o -type f -printf "%s\n" |perl -ne ’$i++; $byte += $_; $str = "\r$i files, $byte byte"; print $str’
どこか記述におかしいところがありますでしょうか。