OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

-のついたファイル名を操作するには…

  • すぐに回答を!
  • 質問No.152356
  • 閲覧数104
  • ありがとう数9
  • 気になる数0
  • 回答数7
  • コメント数0

お礼率 67% (55/82)

Sun OS 5.8を使用しています。不要なファイルを掃除しようとディレクトリー内を調べていると“-a"というファイル名のついたものが見つかりました。
内容を確かめようとcatやviコマンドで、ファイル名を-aとすると、シェルが-aを
コマンドオプションと解釈していまい、うまく扱えません。このファイルの内容を見るにはどうしたらよろしいでしょうか?初歩的な質問で申し訳ありませんが、宜しくお願いします。ちなみにこのファイルはディレクトリーではありません。
一般のファイルで、私には読み書き実行の権限はあります。シェルはUnix標準のKshです。
通報する
  • 回答数7
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル13

ベストアンサー率 37% (419/1115)

恐らくこういった形で出来ると思いますが…。

cat "-a"

vi "-a"

rm "-a"

というようにダブルクォーテーションで括ってみて下さい。
お礼コメント
kiroro302

お礼率 67% (55/82)

naturalさん、早速のご回答ありがとうございます。実はこの方法を試してみたのですが、「オプションが正しくありません。使用法:cat[-usvtebn] [-|file]...」というエラーがあがってしまいます。ダブルクォーテーションで括ってみても、オプションコマンドが打ち消されていないようです。他に何かいい方法がありましたら、ご教授の程宜しくお願い致します。
投稿日時 - 2001-10-17 00:38:41
-PR-
-PR-

その他の回答 (全6件)

  • 回答No.3
レベル8

ベストアンサー率 30% (19/63)

既に解決されているようなので蛇足になりますが、 そういった場合の正攻法(?) を紹介しておきます。 % cat ./-a こうすれば間違いなくアクセスできます。 「./」を用いて、相対パスでファイルを指定してやることで 「-」つきであろうとなかろうと、きちんとファイル名として 認識させてやることができます。 同様に、絶対パスでファイルを指定してやっても問題なくアクセスできます。 ...続きを読む
既に解決されているようなので蛇足になりますが、
そういった場合の正攻法(?) を紹介しておきます。

% cat ./-a

こうすれば間違いなくアクセスできます。
「./」を用いて、相対パスでファイルを指定してやることで
「-」つきであろうとなかろうと、きちんとファイル名として
認識させてやることができます。
同様に、絶対パスでファイルを指定してやっても問題なくアクセスできます。
お礼コメント
kiroro302

お礼率 67% (55/82)

2ndさん、ご回答ありがとうございます。早速試してみました。なるほどです。
パスでファイル名を指定すれば「-」そのままファイル名の一部となるわけですね。バスにオプションなんて無いですものね。大変勉強になりました。いま、会社ではじめてのシェルスクリプトに挑戦しています。難しいです。最初から行き詰まっています。いろいろがんばってみているのですが、どうもうまく動きません。
どうしても解決できなかったら、またこちらで質問したいと思います。その際にはどうぞ宜しくお願い致します。
投稿日時 - 2001-10-17 15:02:02
  • 回答No.2
レベル10

ベストアンサー率 40% (86/214)

どうしてもその名前で扱いたいとなると不明ですが。 一度mvコマンドで名前を変えてから参照してはいかがでしょう。 例:ファイル'-a' を 'ab' に変える。 % mv -- -a ab mvやrmコマンドは、オプション '--' をつけると'-'で始まる名前をファイル名としてくれます。 ...続きを読む
どうしてもその名前で扱いたいとなると不明ですが。

一度mvコマンドで名前を変えてから参照してはいかがでしょう。
例:ファイル'-a' を 'ab' に変える。

% mv -- -a ab

mvやrmコマンドは、オプション '--' をつけると'-'で始まる名前をファイル名としてくれます。
お礼コメント
kiroro302

お礼率 67% (55/82)

CueCueさん、早速のご回答ありがとうございます。できました!!
mv,rm,vi,catコマンドにおいて試してみましたが、きちんと'-’をファイル名の一部として解釈してくれました。大変助かりました。ありがとうございます。
投稿日時 - 2001-10-17 00:53:31
  • 回答No.4
レベル9

ベストアンサー率 36% (37/102)

シェルスクリプトを作ってらっしゃるということで、 もしかしたら、私のつまずいたところ同じじゃないかなと思って、 アドバイスに来ました。 #以下のサンプルは、cshスクリプトの書き方をしていますが #ほかのシェルでも基本的に同じ動作だと思います。 if ( $1 == string ) という書き方をしていると、 たとえば、引数に "-d" が来たときに、 if ( ...続きを読む
シェルスクリプトを作ってらっしゃるということで、
もしかしたら、私のつまずいたところ同じじゃないかなと思って、
アドバイスに来ました。

#以下のサンプルは、cshスクリプトの書き方をしていますが
#ほかのシェルでも基本的に同じ動作だと思います。
if ( $1 == string )
という書き方をしていると、
たとえば、引数に "-d" が来たときに、
if ( -d == string )
と展開されて、== がディレクトリかどうかを返す式になってしまいます。
$1 と string を文字列として比較したいときには、
if ( "$1" == string )
とすると、"$1" は文字列として解釈されます。

私の経験上、引数の処理で苦労したので、書かせてもらいました。
関係なかったら読み飛ばしてください。
お礼コメント
kiroro302

お礼率 67% (55/82)

cherry moonさん、貴重なアドバイスありがとうございます。おっしゃるとおり、まさに引数として-aを渡すと、シェルが思いもかけない解釈をしてしてしまい、とても困りました。-を文字列の一部として解釈させる方法は意外といろいろあるのですね。とても勉強になりました。何か問題にぶつかるとそれを解決しようとする時に思わぬ副収入が得られて、とてもやりがいがありますね。また、初歩的な質問をしてしまうかもしれませんがその際にはどうか宜しくお願い致します。
投稿日時 - 2001-10-18 21:55:38
  • 回答No.5
レベル12

ベストアンサー率 40% (237/589)

No.4 の回答と似たような話ですが、こんな方法もあります。   if (X$1 == Xstring) then つまり、頭に X を付けることによって例えば -d は X-d となり、普通の文字列として判定できるというわけです。 この手法は、昔から結構よく見かけますよ。 ...続きを読む
No.4 の回答と似たような話ですが、こんな方法もあります。

  if (X$1 == Xstring) then

つまり、頭に X を付けることによって例えば -d は X-d となり、普通の文字列として判定できるというわけです。
この手法は、昔から結構よく見かけますよ。
お礼コメント
kiroro302

お礼率 67% (55/82)

ysk6406さん、ご回答ありがとうございます。シェルはまだまだ勉強不足で皆様の貴重な知識はすべて糧になります。なるほどですね。参考にさせて頂きます。もっともっと勉強しなくては!!がんばります。
投稿日時 - 2001-10-18 22:06:21
  • 回答No.6
レベル8

ベストアンサー率 67% (25/37)

以前のSolarisでは、rm に - というオプションが あって、そのものずばりの -がついたファイルを 削除するというものでした。 rm - -a という感じだったのですが、Solaris8 では使えなく なったのでしょうか? ...続きを読む
以前のSolarisでは、rm に - というオプションが
あって、そのものずばりの -がついたファイルを
削除するというものでした。

rm - -a

という感じだったのですが、Solaris8 では使えなく
なったのでしょうか?
お礼コメント
kiroro302

お礼率 67% (55/82)

ita3さん、アドバイスありがとうございます。Solarisでは - 単独のオプションというものがあるのですか。私はSolarisは未経験ですので、初めて知りました。
わたしは Sun OS なのですが、rm - -a(-と-aの間にスペースあり)rm --a(スペースなし)どちらも「オプションが正しくありません」という返事が返ってきてしまいます。なかなか難しいですね。貴重な情報ありがとうございました。
投稿日時 - 2001-10-19 15:51:01
  • 回答No.7
レベル8

ベストアンサー率 67% (25/37)

すみません。削除する話ではなかったのですね。 申し訳ありませんでした。
すみません。削除する話ではなかったのですね。
申し訳ありませんでした。
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ