Frage Wie lösche ich ein nicht leeres Verzeichnis im Terminal?


Wie lösche ich das folgende Verzeichnis?

Ich tippte:

rmdir lampp

Dieser Fehler tritt auf:

rmdir: failed to remove `lampp': Directory not empty

Gibt es einen Befehl, um alle Dateien im Verzeichnis zu löschen und den Verzeichnisordner zu löschen?


539
2017-11-16 04:37


Ursprung


Ich kann ein Verzeichnis wie "Neuer Ordner" nicht mit allen oben genannten Befehlen entfernen. Es ist doppelt formuliert. Aber ich möchte dieses Verzeichnis entfernen. Irgendwelche Vorschläge werden begrüßt. T.Divakara, Bengaluru, Indien
Es ist das Leerzeichen im Dateinamen, versuchen Sie es mit 'Anführungszeichen'> rmdir 'Neuer Ordner' <, dann dispert der Ordner oder verwenden Sie Escape-Zeichen für nicht zulässige Zeichen. - Ken Mollerup
Mach einfach rm -r lampp Wird besorgt. - John Strood


Antworten:


Verwenden Sie den folgenden Befehl:

rm -rf lampp

Es löscht alle Dateien und Ordner in der lampp Verzeichnis.

Falls der Benutzer nicht die Berechtigung zum Löschen des Ordners hat:

Hinzufügen sudo am Anfang des Befehls:

sudo rm -rf folderName

Ansonsten ohne sudo Ihnen wird die Erlaubnis verweigert. Und es ist eine gute Übung, nicht zu verwenden -f beim Löschen eines Verzeichnisses:

sudo rm -r folderName

Hinweis: Dies setzt voraus, dass Sie sich bereits auf der gleichen Ebene des Ordners befinden, den Sie im Terminal löschen möchten, wenn dies nicht der Fall ist:

sudo rm -r /path/to/folderName

Zu Ihrer Information: Sie können Buchstaben verwenden -f, -r, -v:

  • -f = Nicht vorhandene Dateien ignorieren, niemals auffordern
  • -r = Verzeichnisse und deren Inhalt rekursiv entfernen
  • -v = erklären, was getan wird

755
2017-11-16 05:19



Meiner bescheidenen Meinung nach ist es eine gute Übung, das "f" niemals auf Anhieb hinzuzufügen. Sein Zweck besteht darin, bestimmte Warnmeldungen zu ignorieren, die wichtig sein können, insbesondere wenn Sie es versehentlich im / aus dem falschen Verzeichnis ausgeführt haben. Meiner Meinung nach ist es gut, zuerst ohne das "f" auszuprobieren, dann nur, wenn Sie viele Warnmeldungen erhalten, und Sie sind sicher, dass es OK ist, sie alle zu ignorieren, Strg + C aus und wiederholen Sie den Befehl mit " f ". - thomasrutter
@BKSpurgeon nicht, es sei denn Sie tippen versehentlich --no-preserve-root auch. - muru
@thomasrutter ... stimme zu. Eine Datei "xxx" Besitzer: Wurzel  und Gruppe: Wurzel kann mit dem gelöscht werden -f Schalter; und ohne Sudo. Dies ist die Nachricht ohne -f: "rm: schreibgeschützte reguläre Datei entfernen '/home/william/.cache/netbeans/v08.01/tmp/xxx'? _ ". _Tread sanft. - will


rm -R lampp

Sie müssen jedoch mit einem rekursiven Befehl wie diesem vorsichtig umgehen, da es leicht ist, versehentlich viel mehr zu löschen, als Sie beabsichtigt haben.

Es ist eine gute Idee, immer zu überprüfen, in welchem ​​Verzeichnis Sie sich befinden und ob Sie den Befehl richtig eingegeben haben, bevor Sie die Eingabetaste drücken.

Sicherere Version

rm -R -i lampp

Hinzufügen -i macht es ein wenig sicherer, weil es Sie bei jeder Löschung auffordert. Wenn Sie jedoch viele Dateien löschen, wird dies nicht sehr praktisch sein. Trotzdem können Sie das zuerst versuchen.

Hinweis zu  -f  Möglichkeit:

Viele Leute schlagen vor zu verwenden -f (kombiniert es in -Rf oder -rf), behauptet, dass es lästige Aufforderungen loswerden. In normalen Fällen benötigen Sie es jedoch nicht, und die Verwendung unterdrückt einige Probleme, die Sie wahrscheinlich haben machen möchte wissen. Wenn Sie es verwenden, werden Sie nicht gewarnt, wenn Ihre Argumente ein nicht vorhandenes Verzeichnis oder Datei (n) liefern: rm wird einfach nichts löschen. In der Regel versuchen Sie zuerst ohne die -f: Wenn es Probleme mit deinen Argumenten gibt, wirst du es bemerken. Wenn Sie zu viele Eingabeaufforderungen für Dateien ohne Schreibzugriff erhalten, können Sie es mit versuchen -f. Führen Sie alternativ den Befehl von einem Benutzer (oder dem Superuser, der sudo verwendet) mit vollständigen Berechtigungen für die zu löschenden Dateien und Verzeichnisse aus, um diese Aufforderungen an erster Stelle zu verhindern.


89
2017-11-16 04:56



Hinweis: Kleinbuchstaben -r kann auch verwendet werden und hat hier die gleiche Wirkung. Ich neige nur dazu, Großbuchstaben zu verwenden -R weil es mit anderen Befehlen konsistent ist, die ich benutze, wie z grep und chmod, von denen einige nur die Großbuchstabenform unterstützen. - thomasrutter
Dieser funktionierte für mich mit adb (Android Debug Bridge) auf Android. Versuchte rm -rf, aber es hat nicht funktioniert. Musste rm -R benutzen. Vielen Dank. - raddevus


Es gibt viele Möglichkeiten, ein Verzeichnis im CLI-Modus zu löschen. Es hängt davon ab, auf welche Art Sie sich wohl fühlen.

rm -rvf /path/to/directory  
  • -r  = Verzeichnisse und deren Inhalt rekursiv entfernen
  • -v  = erklären, was getan wird
  • -f  = nicht existierende Dateien ignorieren, niemals auffordern

Wenn Sie neu in Linux sind, verwenden Sie die man-Seiten von Befehlen (man rm) für mehr Option und mehr Genauigkeit.


21
2017-11-16 05:38





Ich hatte heute einige Probleme damit, aber ich habe es mit Sudo überwunden.

Vorbehalt: Seien Sie sehr sicher, dass Sie die gesamte Sache löschen möchten, bevor Sie den folgenden Befehl verwenden.

$ sudo rm -R [Directory name]

Ich habe das heute erfolgreich gemacht und viele nicht leere Verzeichnisse entfernt, die ich nicht will / brauche.

Ich benutze 14.04 LTS


-2
2017-09-28 23:00



"SUDO" ist kein Befehl - "Sudo" ist. Sie verwenden jedoch kein sudo, um ein nicht leeres Verzeichnis zu löschen. Sie können damit eine Datei löschen, die Sie nicht besitzen. Dies ist natürlich gefährlich und nicht sehr schlau, da Sie nicht blind Dateien löschen sollten, die Sie nicht besitzen. - Marty Fried


Übrigens wollte ich persönlich ein Verzeichnis löschen, das eine schreibgeschützte Datei / s (.git und Unterverzeichnisse) enthielt, und schließlich erkannte ich, dass ich auch ein Super-Benutzer werden musste, um diese Dateien erfolgreich zu löschen. Hier ist, was ich getan habe:

#became super user
sudo su -

#deleted contents of, and then the directory, harvey_snake/
rm -R harvey_snake/

-3
2017-09-17 17:35



Ich glaube nicht, dass du es brauchst sudo su Hier. Einfach das Präfix voranstellen rm Befehl mit sudo. Aus Gründen der Sicherheit ist es eine gute Übung (gemäß den Befürwortern von sudo), nicht in einer Root-Eingabeaufforderung zu bleiben, wenn dies nicht notwendig ist. - thomasrutter
Sei dir auch sehr sehr sicher, in welchem ​​Verzeichnis du dich befindest sudo rm -r. - Tony Martin
Sie könnten den Befehl root-relativ machen (/directory_name), also könnte es keinen Zweifel geben, welches Verzeichnis Sie löschen. - Yaakov Ainspan