Sun OS 5.8を使用しています。不要なファイルを掃除しようとディレクトリー内を調べていると“-a"というファイル名のついたものが見つかりました。
内容を確かめようとcatやviコマンドで、ファイル名を-aとすると、シェルが-aを
コマンドオプションと解釈していまい、うまく扱えません。このファイルの内容を見るにはどうしたらよろしいでしょうか?初歩的な質問で申し訳ありませんが、宜しくお願いします。ちなみにこのファイルはディレクトリーではありません。
一般のファイルで、私には読み書き実行の権限はあります。シェルはUnix標準のKshです。
No.1ベストアンサー
- 回答日時:
恐らくこういった形で出来ると思いますが…。
cat "-a"
vi "-a"
rm "-a"
というようにダブルクォーテーションで括ってみて下さい。
naturalさん、早速のご回答ありがとうございます。実はこの方法を試してみたのですが、「オプションが正しくありません。使用法:cat[-usvtebn] [-|file]...」というエラーがあがってしまいます。ダブルクォーテーションで括ってみても、オプションコマンドが打ち消されていないようです。他に何かいい方法がありましたら、ご教授の程宜しくお願い致します。
No.6
- 回答日時:
以前のSolarisでは、rm に - というオプションが
あって、そのものずばりの -がついたファイルを
削除するというものでした。
rm - -a
という感じだったのですが、Solaris8 では使えなく
なったのでしょうか?
ita3さん、アドバイスありがとうございます。Solarisでは - 単独のオプションというものがあるのですか。私はSolarisは未経験ですので、初めて知りました。
わたしは Sun OS なのですが、rm - -a(-と-aの間にスペースあり)rm --a(スペースなし)どちらも「オプションが正しくありません」という返事が返ってきてしまいます。なかなか難しいですね。貴重な情報ありがとうございました。
No.5
- 回答日時:
No.4 の回答と似たような話ですが、こんな方法もあります。
if (X$1 == Xstring) then
つまり、頭に X を付けることによって例えば -d は X-d となり、普通の文字列として判定できるというわけです。
この手法は、昔から結構よく見かけますよ。
ysk6406さん、ご回答ありがとうございます。シェルはまだまだ勉強不足で皆様の貴重な知識はすべて糧になります。なるほどですね。参考にさせて頂きます。もっともっと勉強しなくては!!がんばります。
No.4
- 回答日時:
シェルスクリプトを作ってらっしゃるということで、
もしかしたら、私のつまずいたところ同じじゃないかなと思って、
アドバイスに来ました。
#以下のサンプルは、cshスクリプトの書き方をしていますが
#ほかのシェルでも基本的に同じ動作だと思います。
if ( $1 == string )
という書き方をしていると、
たとえば、引数に "-d" が来たときに、
if ( -d == string )
と展開されて、== がディレクトリかどうかを返す式になってしまいます。
$1 と string を文字列として比較したいときには、
if ( "$1" == string )
とすると、"$1" は文字列として解釈されます。
私の経験上、引数の処理で苦労したので、書かせてもらいました。
関係なかったら読み飛ばしてください。
cherry moonさん、貴重なアドバイスありがとうございます。おっしゃるとおり、まさに引数として-aを渡すと、シェルが思いもかけない解釈をしてしてしまい、とても困りました。-を文字列の一部として解釈させる方法は意外といろいろあるのですね。とても勉強になりました。何か問題にぶつかるとそれを解決しようとする時に思わぬ副収入が得られて、とてもやりがいがありますね。また、初歩的な質問をしてしまうかもしれませんがその際にはどうか宜しくお願い致します。
No.3
- 回答日時:
既に解決されているようなので蛇足になりますが、
そういった場合の正攻法(?) を紹介しておきます。
% cat ./-a
こうすれば間違いなくアクセスできます。
「./」を用いて、相対パスでファイルを指定してやることで
「-」つきであろうとなかろうと、きちんとファイル名として
認識させてやることができます。
同様に、絶対パスでファイルを指定してやっても問題なくアクセスできます。
2ndさん、ご回答ありがとうございます。早速試してみました。なるほどです。
パスでファイル名を指定すれば「-」そのままファイル名の一部となるわけですね。バスにオプションなんて無いですものね。大変勉強になりました。いま、会社ではじめてのシェルスクリプトに挑戦しています。難しいです。最初から行き詰まっています。いろいろがんばってみているのですが、どうもうまく動きません。
どうしても解決できなかったら、またこちらで質問したいと思います。その際にはどうぞ宜しくお願い致します。
No.2
- 回答日時:
どうしてもその名前で扱いたいとなると不明ですが。
一度mvコマンドで名前を変えてから参照してはいかがでしょう。
例:ファイル'-a' を 'ab' に変える。
% mv -- -a ab
mvやrmコマンドは、オプション '--' をつけると'-'で始まる名前をファイル名としてくれます。
CueCueさん、早速のご回答ありがとうございます。できました!!
mv,rm,vi,catコマンドにおいて試してみましたが、きちんと'-’をファイル名の一部として解釈してくれました。大変助かりました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(OS) DOSコマンド『dir』の『/o』オプション 3 2023/03/10 09:29
- Windows 10 USBにwindows10をいれて起動する方法 5 2022/04/14 14:29
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- PDF PDFに精通した方に質問。JPEGファイル群を一つのPDFファイルにするときの容量変化について 6 2023/07/23 19:06
- Visual Basic(VBA) Excel VBA ファイル取得について フォルダの中に、ファイル名“会議“を含むファイルが1つまた 9 2022/10/12 01:18
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- その他(コンピューター・テクノロジー) batファイルでPCの設定内容やプロパティーを取得したいのですが、コマンド1個で1ファイルとなるのを 2 2022/04/27 15:27
- Visual Basic(VBA) Excel ファイルを指定し、指定されたファイル内にシートを統合するVBA 8 2023/07/10 10:09
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- マルウェア・コンピュータウイルス FlashPlayerの削除とマルウェア感染について 5 2023/02/23 20:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows Media Playerを開くと...
-
Windows11のデスクトップのアプ...
-
エクスプローラのアクティブウ...
-
windows11におけるファイルの並...
-
windows11でクイックスキャン等...
-
Windows11 システム通知音がも...
-
アイコンに、四角い枠が出来て...
-
「Wi-Fiアダプターへのアクセス...
-
MS-DOS 6.22のダウンロード
-
Windowsで大量の画像サイズを半...
-
Ubuntuに仮想環境いれて古いwin...
-
Microsoftのページだけ全て「申...
-
VirtualBoxのゲストOS起動時にU...
-
Raspberry Pi 3 A+ ブラウザ遅い
-
勝手に無変換になる
-
Windows Mac Linux で共用可能...
-
Windows11です。タスクバーの時...
-
「ウインドウズアップデートの...
-
OPPOのRENOシリーズのOSのアプ...
-
フォルダロック
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
windows11でクイックスキャン等...
-
エクスプローラのアクティブウ...
-
クロムOSについて教えてください
-
Windows Media Playerを開くと...
-
windows11 きれいなロック画面...
-
Windows11の右クリックメニュー...
-
Windows11のデスクトップのアプ...
-
windows11におけるファイルの並...
-
「Wi-Fiアダプターへのアクセス...
-
Windows11 システム通知音がも...
-
Windowsの古いゲーム(32bit OS...
-
windows10DVDからインストール...
-
アイコンに、四角い枠が出来て...
-
有料Microsoft365は、PCを変え...
-
Mac用の外付けHDはWindowsPCで...
-
コマンドプロンプト tree
-
Win + G でCPU使用率が表示され...
-
Windows11 ゴミ箱 ファイルの取...
-
Windowsアップデートしたらタス...
-
MS-DOS 6.22のダウンロード
おすすめ情報