例えば -foo
ってファイルがあったら普通にコマンドラインで処理すると
「-foo なんてオプションはねーよ!」という感じのエラーになります。
対策1
./-foo
のように書く。
対策2
-- "-foo"
のように書く。 --
は「オプションとしての引数の終了」を意味するbash の build-in なのでこれ以降にかけばファイル名だと認識される。
参考
shell - What does "--" (double-dash) mean? - Unix & Linux Stack Exchange
http://unix.stackexchange.com/questions/11376/what-does-double-dash-mean