\\(¥)マークつきファイル名が消せない!

部屋が寒いので「暖房」したつもりが「冷房」になっており、キンッキンに冷えた部屋で凍りそうになりながらこのブログを書いています…。

そんなドジに似た「やっちまった」案件を紹介します。
初心者のよくある失敗と思ってご笑覧くださいませ。

log¥2021-12-07.txt というファイルが出来てしまう

PHP でログファイル出力のテストをしておりました。
log というディレクトリに 2021-12-07.txt のような日付ファイルを設置するイメージ。

$file_name = "log\\{$array_access_time[0]}.txt";

はい、アウトー。

Windows に慣れ過ぎて、Linux ではセパレータが \\(¥) ではなく / なのを忘れていました…。
そのまま¥つきファイルが作成されてしまいました。

FTP ソフトで削除を試みる

さて、このファイルを FTP ソフトで消そうとします。(Filezilla がお気に入り)

553 Prohibited file name というエラーで消えてくれません。
その上のディレクトリから消そうとしても消えない。困った。

SSH 接続という魔法に頼る

わからないから Conoha のサポートなるべく自分で解決したいと思ったので、色々と情報をあさったところ、最終手段は SSH 接続じゃないかと確信する。

Windows のコマンドプロンプトみたいなやつ。
Linux ほとんど使ったことはないが、cd と ls と rm がわかればなんとかなるだろう
ls で自分の居場所確認、cd で移動、rm で消えない、にくいアイツを消す。

(大雑把な認識)
cd .. ディレクトリを移動する
ls .. windows の dir
rm .. windows の del

SSH接続するまで

私は Conoha Wings を借りているので、具体的にはその手順になります。

SSH 接続のために必要なのは、次の4情報。

  • ホスト名
  • ポート
  • ユーザー名
  • 認証鍵(ファイル)

Conoha の場合、情報は1か所にまとまっています。
+ SSH Key を押して保存、プライベートキーはダウンロードしてください。(これが認証鍵になります)

次に SSH 接続可能なツールをインストールします。
私は TeraTerm というツールを使いました。

起動するとこのようなダイアログが表示されます。
ホストホスト名TCPポート#ポート番号を入れます。

ユーザ名に Conoha のユーザー名認証方式RSA/DSA/ECDSA/ED25519 鍵を使う、にしてダウンロードしたファイルを選択します。

なお、この画面は一定時間で消えてしまうようなので素早く入力しましょう。
(消えてしまった場合、ファイル > 新しい接続 で再度表示します)

無事接続できると、[ ユーザー名@ホスト名 ]$ という表示になります。

Conoha の場合、public_html の下に自分のドメインと同じ名前のフォルダがあります。
ツリー表示した方がわかりやすいですね。こんな感じ。

この KeihiReport の下に問題の log¥2021-12-07.txt があります。
ここまでフォルダを移動します。

分かってる人にはなんてことないけど、経験が浅いと結構ドキドキ

ls で自分のいる位置を確認、cd で移動して…奴がいた!
彼には消えてもらいましょう。産まれてきたのが間違いだったんだ。

消せないのだが?

弱りました、ここまでやっておいて成果なしか…やっぱり Conoha サポートに…。
いやいや、よく見てみましょう。エラーメッセージのファイル名を。

log2021-12-07.txt

¥がなくなっていますね?
ということは、プログラムでもそうでしたが¥¥と2つ書いたらどうだろうか。

エラーが出ないとなにも起こってないようで不安になりましたが、ls で確認すると確かになくなっています。

無事ファイルが消えました!

知ってる人には当たり前でも…

知らない人にとって、ここまでの道のりは結構険しいと思います。
困ったら SSH 接続は間違いなさそうですが、GUI 慣れしている人間には SSH 接続自体、出来れば触れたくない世界ですよね…。

とはいえこういった事故は起こります(困ったことに慣れていない人ほど、起こします💦)
苦手意識のある部分も少しずつ触れていくことで、スキルを磨いていきましょう。

磨くというのもおこがましい内容なのは、ナイショ

返信を残す

メールアドレスが公開されることはありません。

CAPTCHA