SSH経由で予約文字を含むファイルを削除する

SSH経由で予約文字を含むファイルを削除する

サーバー側アプリケーションを開発しているときに、次のような名前のファイルを誤っていくつか作成しました。

<?php echo $_GET[\'team\'] ?>files.json

これらのファイルに必要なバックスラッシュを追加した後でもrm、ターミナルではそれらのファイルが存在しないと表示されます。FTP GUI でもそれらを削除できません。

この状況に対処する方法について助けていただければ幸いです。Google や Stack Overflow では何も見つけられませんでした。

答え1

一般的な方法の 1 つは、Perl や Ruby などを使用してファイルを削除することです。

perl -e 'unlink("random crazy file")'
ruby -e 'File.unlink("random crazy file")'

そうすればシェルの問題は回避されます。

bash のような対話型シェルを使用してこれを行う別の簡単な方法は、 と入力rm fiして Tab キーを押し、bash にファイル名を補完させることです。これで引用符がうまく付きます。

答え2

もっと正確なパターンを使用することもできましたが、私は次のようにしました:

正当な JSON ファイルをバックアップしended up、サブディレクトリにそのディレクトリ内のすべての JSON ファイルを削除する Perl スクリプトを作成します。

$filepath= "../*.json";
@jsonPattern=glob($filepath);
unlink @jsonPattern;

次に、そのサブディレクトリにcdして入力して実行しました。perl nameOfMyScript.perl

関連情報