• 締切済み

先頭にハイフンがついたファイルの削除

先頭にハイフンがついたファイルの削除について質問です perlでファイルの生成でうまくいかず先頭にハイフンが ついたファイルができてしまい、rmで消そうとすると rm -myid-mail_body.txt rm: invalid option -- m 詳しくは `rm --help' を実行して下さい. とメッセージが表示され消せません。 どうすれば消せるのでしょうか。 環境 redhatLinux カーネル2.2.14-5.0

みんなの回答

noname#30871
noname#30871
回答No.2

私も昔、Unixを触り始めたときに同じ経験をしました。 この場合、対象ファイルをフルパスで >rm /……/……/-myid-mail_body.txt と指定してやれば消えるはずです。 または、そのファイルがホームディレクトリにあれば >rm ~/-myid-mail_body.txt でOK。(Vine Linuxのbashとtcshで確認しました)

ganimede
質問者

お礼

できました。ありがとうございました。 UNIXの経験は長かったのですが、こんなところがわからないなんて はずかったので助かりました。

  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.1

ファイル名が-abc.datと仮定して rm -- -abc.dat または rm ./-abc.dat のどちらかで削除できませんか?

関連するQ&A

  • --が先頭につくファイルを消すには

    phpのプログラムで、 先頭に--(半角ハイフンが2つ)つくファイルを作成してしまいました。 そのあと、 rm --(ファイルの名前)と実行しても、消すことができません。 rm: 認識できないオプション`--(ファイルの名前)`です。 といわれてしまうのです。 どうにか、先頭に--が2つつくファイルを消したいのですが、 どうすればよいのでしょうか? 宜しくお願いします。

  • sedを使って複数ファイルの先頭行を表示

    以下の様なファイルがあります。 各ファイルの先頭行をとりだしたいのですが、headコマンドを使うと ファイル名と結果が分かれて表示されます。 sedで、-nオプションの行番号指定で表示することができるので、 sed -n '1p' *.txt のワイルドカード指定でやったのですが、 この場合だと複数ファイルとみてくれなくて、すべてのファイルを ひとつにしてその先頭を表示しているみたいです。 できれば、各ファイル毎に、ファイル名と結果を1行にして表示したい のですが、どうすればよいでしょうか。 参照ファイル cat 1.txt 12345 67890 cat 2.txt abcde fghij cat 3.txt 11111 22222 headコマンドで実行 $ head -n 1 *.txt ==> 1.txt <== 12345 ==> 2.txt <== abcde ==> 3.txt <== 11111 sedで実行 $ sed -n '1p' *.txt 12345

  • 特殊なファイル名のファイルの削除方法

    間違えて "---------------------" という名前のファイルが作成されてしましました。これを削除するにはどうしたらよいのでしょうか? 以下のよう"---"がにオプションと解釈されてしまい、ファイル名として認識されなく困っています。 % >rm ------------------ rm: unrecognized option `---------------------' Try `rm --help' for more information. 宜しくお願い致します。

  • 先頭にワイルドカードを用いたファイル指定方法

    いつもお世話になっております。 本題ですが、以下のようなバッチ(例です)を組み、コピーしたいのですが、その際、ファイルの先頭の「●●月」が毎月変わるので、先頭にワイルドカードを用いて指定したいのですが、色々調べても、先頭にワイルドカードを用いた例がありませんので、助力をお願いしたく存じます。 コピーしたいファイル=「10月マスター.txt」 copy c:\*マスター.txt d:\マスター.txt     ^ これを実行しても、ファイルがありません、とのメッセージが出てコピーしてくれません。 特にワイルドカードに固執しているわけではありませんので、解決方法がございましたらご教授いただきたく存じます。 ただ、プログラミングよりも、バッチが好きなタチです^^; よろしくお願いします。

  • ファイルの削除

    ファイルを操作しているうちにへんてこなプログラムが生成されてしまいました。 .txtのファイルの拡張子をいじっていたら.exeの実行型にしていました。 削除しようとしてもファイルは使用中で削除できないとメッセージが出てしまいます。 タスクマネージャでプロセスなどをすべて探してみましたが、それらしきプロセスはなくもうどうしようもない状態です。 どうすれば削除できるでしょうか? とっても目障りなので削除したいんです。 (KnoopixからPCをブートしてHDD上から削除を試みましたが失敗でした。 セーフモードも同様な結果でした。)

  • Perl 先頭行に追加

    恐れ入ります。 Perlで、配列がカンマで区切られたデータを読み込み、 その先頭行にデータを挿入したいのですが、 中々うまくいきません。 データ(/data/xxx.txt)の中身は、 test,test2 bbb,bbb2 ccc,ccc2 という感じで、カンマで区切られて改行で並んでいます。 そこに新たに$dateと$contで受けたデータを先頭行に追加する感じです。 open(FILE,"<./data/xxx.txt"); while($temp = <FILE>){ @temp=split(/,/,$temp); push(@ddr,"$temp[0]","$temp[1]"); } seek(@ddr,0,0); unshift(@ddr,($date,$cont."\n")); open(FILE,">./data/xxx.txt"); $new=join(",",@ddr); print FILE $new; close(FILE); このように書いていますが、 print FILE @ddr とすると、配列が壊れた状態(全て繋がる)で先頭行には挿入されたのですが、カンマで区切って配列にして並べようとしたら、 test,test2 ,bbb,bbb2, ,,ccc,ccc2,, という感じで上手く並びません。 よろしくおねがいします。

    • ベストアンサー
    • Perl
  • シェルでファイルの最下行を削除する方法

    シェルでファイルの最下行を削除する方法 シェルで、ファイルaaa.txtの最下行を削除したいです。これを1行で実現したいです。 exには-cってオプションがあるので、ex -c '$d' aaa.txt などと試してみましたがダメでした。 ;(コロン)や&&でつなぐのは、1行ではないって事でお願いします。 >cp aaa.txt tmp && sed '$d' tmp >aaa && rm tmp #こういうのは無しって意味です。 事前にスクリプトや、それ専用のバイナリを用意しておくのも無しでお願いします。なるべく汎用的な どこのUNIXにでもあるようなコマンドで実現したいです。

  • textファイル名を取得して先頭行の挿入スクリプト

    大量のtxtファイルのファイル名をテキストの先頭行に挿入するスクリプトを見つけて実行したのですが、17行の引数エラーとなってしまいました。 古いスクリプト(2007年)で作者に繋がるかわからないので、どなたかvbsに詳しい方に教えていただければ幸いです。 http://beauty.geocities.jp/chirinuruwowahe/TxtTxtAddName.zip よろしくお願いします。

  • 実行ファイルのサブフォルダのファイル名変更で

    h = FindFirstFile("bitmap\\*.txt", &fd); if(h == INVALID_HANDLE_VALUE){   MessageBox(NULL, "ファイルが見つかりませ    ん", "エラー", MB_OK | MB_ICONERROR | MB_RIGHT); return 1; } このようにして実行ファイルのサブフォルダにあるtxtファイルを見つけることはできるのですが、このサブフォルダにあるtxtファイルのファイル名を1に変更しようとMoveFile( fd.cFileName, filename )などとしてもファイル名が変更できません。サブフォルダではなく、、((h = FindFirstFile("*.txt", &fd)のように指定して、実行ファイルにあるtxtのファイル名は変更できます。この実行ファイルのサブフォルダにある任意のtxtファイルを見つけだし、ファイル名を変える何かいい方法があればご教授お願いいたします。

  • ファイルの読み込み操作のコーディングについて

    perlのファイル読み込み操作についての質問です #!/usr/local/bin/perl #ファイルの読み込み open(FILE,"<diary.txt"); $data = <FILE>; close(FILE); #サーバー出力 print <<END; Content-type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <title>ファイルの読み込み</title> </head> <body> <h5> <p>$data</p> </h5> </body> </html> END 次のように、perlのコードを書いて無料の CGIの使えるレンタルサーバーに 設置したところ、エラーが出てしまいます dairy.txtはこのファイルと同じディレクトリで パスも間違えてないです、いろいろ自分で調べてみたんですが どこが間違えているかわかりません よろしかったらどなたかperlに詳しい方がいらっしゃったら 間違えている箇所を教えていただけないでしょうか?