Wie würden Sie einen Ordner mit dem Namen * in / from bash löschen?

8

Angenommen, ich hatte einen Ordner mit dem Namen *unter /. Ich weiß, dass allgemeine Befehle wie rm -rf * nicht funktionieren. Irgendeine Hilfe?

user160936
quelle
2
Technisch rm *würde funktionieren, um diesen Ordner zu löschen.
Colonel Panic

Antworten:

7

Verwenden Sie diesen kurzen Befehl:

rm /\*
Serge
quelle
1
Das wird nicht funktionieren - es ist ein Verzeichnis.
naught101
1
Verwenden Sie stattdessen 'rmdir / \ *'. Die andere Option ist die Verwendung von 'rm -rf / \ *'. Letzteres ist jedoch gefährlich, wenn Sie einen Fehler machen.
Serge
14

Sie können Argumente in einfache Anführungszeichen setzen, um die Verarbeitung durch die Shell zu verhindern.

rm -r '/*'

Testen Sie es sicher mit ls(in Ordnern, die Dateien enthalten):

$ ls '*'
ls: *: No such file or directory

In diesem Fall würden doppelte Anführungszeichen ebenfalls funktionieren, aber wenn es sich um eine $beteiligte handelt, würden sie dies nicht tun, da die Shell davon ausgehen würde, dass es sich um eine Variable handelt:

$ ls "foo$bar"
ls: foo: No such file or directory
$ ls 'foo$bar'
ls: foo$bar: No such file or directory

Für GNU rmkönnen Sie auch --Argumente vor dem Dateinamen hinzufügen , um zu verhindern, dass sie als Argumente analysiert werden. Auf diese Weise können Sie benannte Dateien -rfproblemlos löschen .

Daniel Beck
quelle
Nicht benötigt. Sie können einfach dem '*' entkommen, damit es nicht von der Shell erweitert wird, wie Serge antwortete.
Darnir
5
@darnir Du musst es nicht benutzen, wenn es dir nicht gefällt. Sie müssen jedoch wissen, welchen Zeichen Sie entkommen müssen, wenn Sie den Ansatz von Serge verwenden (überlegen &), und sie einzeln entkommen, was leicht mehr Aufwand bedeuten kann, als einmal zu zitieren. Ich halte daher die Flucht von Personen für minderwertig und habe diese Alternative veröffentlicht.
Daniel Beck
3
@ Serge Ich sage nicht, dass deine Antwort schlecht ist. Es erledigt die Arbeit und wurde angenommen . Wenn es jedoch mehrere (einigermaßen unterschiedliche) Möglichkeiten gibt, etwas mit unterschiedlichen Vor- und Nachteilen zu erreichen, können Sie sie alle auflisten. Sie funktionieren möglicherweise nicht in allen Situationen, daher ist es gut, Alternativen zur Auswahl zu haben. Bitte beachten Sie auch, dass Nutzer mit ähnlichen (nicht identischen) Problemen möglicherweise zu einer Frage von Google gelangen. Es ist auch eine gute Idee , den Anwendungsbereich zu erweitern, wenn dies zu Fragen führt, die mehr Menschen helfen können. Das Schreiben von Antworten mit größerem Umfang ist dort ein Anfang.
Daniel Beck
1
Ich hatte nicht das Ziel, alle meine Antworten zu akzeptieren und mit den höchsten Schmerzen. Ich verbringe ein paar Tage (dieses Wochenende) mit einigen dieser Seiten. Der erste Eindruck war, dass ich mein Wissen mit Menschen teilen kann. Deshalb begann ich, Antworten zu geben. Auf SO habe ich in diesen drei Tagen 760 Punkte bekommen. Ja, einige meiner Antworten waren aus verschiedenen Gründen nicht von höchster Qualität. Aber alle waren richtig. Aber jetzt sehe ich, dass die meisten Leute, die hier Fragen stellen, Schüler sind, die keine Sekunde damit verbringen wollen, selbst eine Lösung zu finden. Wofür werde ich meine Zeit verbringen?
Serge
1
@ Serge Nicht sicher, worum es in Ihren Kommentaren geht. Nach dem, was ich gesehen habe, nachdem Sie es erwähnt haben, hatten Sie einen beeindruckenden Start, um zu den Websites beizutragen. Wenn ich Ihnen bei der Nutzung der Websites helfen kann oder wenn Sie etwas anderes besprechen möchten, können Sie mich gerne im Chat anrufen. Ich bin jedoch in UTC + 2, sodass Sie möglicherweise nicht sehr bald eine Antwort erhalten. Zu "Anfänger" -Fragen: Beachten Sie, dass einige Informationen nicht leicht zu finden sind. Das Lesen der vollständigen bashManpage dauert eine Weile, wenn Sie nicht wissen, wonach Sie suchen sollen.
Daniel Beck