- ベストアンサー
cshでのリンクファイルの存在確認方法
cshで if (-f ***) then endif とすると *** というファイルが存在するかどうか調べられますが、*** というファイルが、リンクファイルかどうか調べるにはどうすればよいですか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
/bin/sh なら if test -L *** then xxxxxxxxx fi ですね。 cshはログインシェルとして使うだけならまだしも、スクリプトを書くのには機能が貧弱なので、/bin/sh か /bin/bash 等を使ったほうがいいでしょう。testはビルトインコマンドです。
その他の回答 (2)
- osamuy
- ベストアンサー率42% (1231/2878)
回答No.2
オリジナルのcshのファイル照会演算子には、シンボリックを検査するものはないので、 ・tcshを使う。 ・Perlなどを使う。 ・外部コマンドtestをつかう。 ・ls -ldの結果からファイルモードの先頭がlなやつをgrepして、その行数をカウントする。 ――といったやり方が考えられます。
- HOGERA3
- ベストアンサー率35% (50/139)
回答No.1
リンクファイルってシンボリックリンクのことですか? if ( -l *** ) then ... endif でいいと思います。
質問者
補足
早速やってみたんですが、実行すると、 if: 数値形式が正しくありません。 というエラーがでて終わってしまいました。「-l」って言うオプションcshで使えるんですか? シンボリックリンクかどうかはよく分かりませんが。。。 ln -s で1つ上のディレクトリからリンクしてきているファイルです。
お礼
分かりました。ありがとうございます。 いろいろ試してみたいと思います。