Löschen einer Datei mit reservierten Zeichen über SSH

Löschen einer Datei mit reservierten Zeichen über SSH

Beim Entwickeln einer serverseitigen Anwendung habe ich versehentlich einige Dateien erstellt, die ähnliche Namen wie diese haben:

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

Selbst nachdem ich die erforderlichen Backslashs zu rmdiesen Dateien hinzugefügt habe, meldet Terminal, dass diese Dateien nicht existieren. Meine FTP-GUI löscht sie auch nicht.

Ich wäre für Hilfe im Umgang mit dieser Situation dankbar – ich konnte weder über Google noch über Stack Overflow etwas finden.

Antwort1

Ein gängiger Ansatz besteht darin, zum Löschen der Datei etwas wie Perl oder Ruby zu verwenden:

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

Dadurch wird die ganze Shell-Sache vermieden.

Eine andere einfache Möglichkeit, dies mit einer interaktiven Shell wie Bash zu tun, besteht darin, einzugeben rm fi, die Tabulatortaste zu drücken und Bash den Dateinamen für Sie vervollständigen zu lassen. Das lässt sich gut zitieren.

Antwort2

Ich hätte ein präziseres Muster verwenden können, aber das habe ich getan:

Ich ended upsichere meine legitimen JSON-Dateien und erstelle ein Perl-Skript in einem Unterverzeichnis, das alle JSON-Dateien in diesem Verzeichnis löscht:

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

Dann habe ich es ausgeführt, indem ich mit cd in das Unterverzeichnis gewechselt bin undperl nameOfMyScript.perl

verwandte Informationen