Warum können weder Windows noch Ubuntu einen Dateinamen mit Sonderzeichen erkennen?

Warum können weder Windows noch Ubuntu einen Dateinamen mit Sonderzeichen erkennen?

Ich habe versucht, in Bash in WSL etwas an eine Textdatei anzuhängen (mit dem >>Operator). Da ich Anfänger bin, wurde leider, anstatt etwas an eine Datei anzuhängen, eine neue Datei mit dem >>Dateinamen „Text“ erstellt, und es scheint, dass weder Windows (GUI) noch Ubuntu ( rmBefehl) die Datei löschen können, solange sie sich im Verzeichnis befindet (sie wird auch bei Verwendung des Befehls angezeigt dir).

  • Windows-GUI:

    Verzeichnis in der Windows-Benutzeroberfläche

  • Windows-Fehlercode:

    Windows-Fehlercode

  • Schlag:

    root@DESKTOP-IA030GJ:/# cd home
    root@DESKTOP-IA030GJ:/home# dir
    English_Class  Finished_Projects  Keeping.txt  Random_Password_Generator_Project  \\n\\n\ -----Changes\   onion_project  pythonwork
    root@DESKTOP-IA030GJ:/home# ls --quoting-style=shell
     English_Class                      '\n\n -----Changes '
     Finished_Projects                   onion_project
     Keeping.txt                         pythonwork
     Random_Password_Generator_Project
    

Antwort1

Dieser Dateiname enthält Sonderzeichen, weil Sie ursprünglich (versehentlich) Daten weitergeleitet haben. Aus diesem Grund müssen wir wissen,genauDateiname und verwenden Sie diesen im rmBefehl in Anführungszeichen.

Wir wissen, dass Ihre Datei genau den Namen hat \n\n -----Changes. Also verwenden wir diesen. Entfernen Sie die einfachen Anführungszeichen nicht aus diesem Befehl, sonst funktioniert er nicht.

rm '\n\n -----Changes '

Dadurch sollte die Datei vollständig und ohne weitere Probleme gelöscht werden.

Beachten Sie, dass Sie die Datei auch hätten entfernen können, indem Sie sie *Changes*als Muster zum Entfernen verwendet haben. Oder fügen Sie -izusätzlich das Flag hinzu, um es interaktiv zu machen und sicherzustellen, dass die zu löschenden Dateien tatsächlich gelöscht werden.

verwandte Informationen