shp2pgsql
ヘルプによると、オプションdrop、append、createおよびprepareは相互に排他的です。そのため、シェイプからテーブルを作成し、他の複数のシェープファイルを追加する場合、次のような操作を行い、作成モードか追加モードかを示すカウンターを保持します。
cnt=0
for shp in $(ls *.shp); do
if [ $cnt -eq 0 ] ; then
shp2pgsql -s 27700 -c $shp schema.table_name | psql -h localhost db
else
shp2pgsql -s 27700 -a $shp schema.table_name | psql -h localhost db
fi
((cnt++))
done
これは予想どおりに機能しますが、もっと簡単な方法があるのではないかとよく疑問に思います。