プロが教える店舗&オフィスのセキュリティ対策術

cshで

if (-f ***) then
endif

とすると *** というファイルが存在するかどうか調べられますが、*** というファイルが、リンクファイルかどうか調べるにはどうすればよいですか?

A 回答 (3件)

/bin/sh なら



if test -L ***
then xxxxxxxxx
fi
ですね。
cshはログインシェルとして使うだけならまだしも、スクリプトを書くのには機能が貧弱なので、/bin/sh か /bin/bash 等を使ったほうがいいでしょう。testはビルトインコマンドです。
    • good
    • 0

オリジナルのcshのファイル照会演算子には、シンボリックを検査するものはないので、



・tcshを使う。
・Perlなどを使う。
・外部コマンドtestをつかう。
・ls -ldの結果からファイルモードの先頭がlなやつをgrepして、その行数をカウントする。

――といったやり方が考えられます。
    • good
    • 0
この回答へのお礼

分かりました。ありがとうございます。
いろいろ試してみたいと思います。

お礼日時:2004/02/06 17:55

リンクファイルってシンボリックリンクのことですか?



if ( -l *** ) then
...
endif

でいいと思います。

この回答への補足

早速やってみたんですが、実行すると、

if: 数値形式が正しくありません。

というエラーがでて終わってしまいました。「-l」って言うオプションcshで使えるんですか?

シンボリックリンクかどうかはよく分かりませんが。。。
ln -s で1つ上のディレクトリからリンクしてきているファイルです。

補足日時:2004/02/06 11:29
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています