私はfindを使ってディレクトリパスを入力するスクリプトを書いています。これはスクリプトの一部です。
set list = (`find $PATH -type d`)
ファイルまたはディレクトリ名の名前が指定されないまでは正常に動作します。たとえば、次のようになります。
fi@@lename&& or −filename or :−,?!drectoryanem!-
これらの特殊文字を処理できないため、検索スクリプトを次のように変更しました。
set list = ("`find $PATH -type d`")
ただし、次のスクリプトでリストのパスを使用したい場合は、どちらも機能しません。
foreach i ($list:q)
foreach file (`find "$i" -maxdepth 1 -type f`)
....
end
end
これらの特殊ファイル名を処理できないため、findなどのエラーがたくさん発生します。
−."!filenda no such filename or directory
ベストアンサー1
珍しいファイル名を管理するには、引用符( ")を囲む必要がありますが、find
最も効率的な方法では使用find
されていないようです。 。
find . -maxdepth 1 -type f -exec ls -l {} \;
-exec以降のすべては、見つかった各ファイルで実行され、{}
ファイル名に置き換えられます。
また、FreeBSD 3.2では、いくつかの奇妙なことがあります。 FreeBSD 3.2は1999年5月にリリースされました。