Entfernen einer Datei mit Sonderzeichen über das Terminal, die von einem anderen Befehl ausgewählt wurde

501
Gethen Sullivan

das ist mein erster post, also geh sanft :)

Ich erstelle ein AppleScript, das bash-Befehle ausführt, um die zuletzt geänderte Datei in einer bestimmten Gruppe von Ordnern auszuwählen und zu löschen. Der Dateiname ist jedes Mal anders.

Ich habe gesehen, wie man eine Datei mit Sonderzeichen löscht, wenn man den tatsächlichen Dateinamen kennt, aber in meinem Fall wird der Dateiname von ls erkannt. Leider, als ich die Datei mit rm löschen konnte, ist alles durcheinander und die Datei kann nicht identifiziert werden, da der Name Fragezeichen und Leerzeichen enthält. Gibt es eine Möglichkeit, Anführungszeichen außerhalb einer Variablen hinzuzufügen, damit sie korrekt adressiert werden kann? Oder gibt es einen besseren Weg? Ich kann nicht einmal herausfinden, wie man die Datei umbenennt. Außerdem möchte ich nur diese eine Datei ändern / löschen. Ich kann nicht alle Dateien im Ordner umbenennen.

Hier ist ein Beispiel für einen der Dateinamen. +61 434 570 460 & le; am 2016-12-22 am 15.01.27.ichat

Und hier ist der Code, den ich versuche zu arbeiten; rm -fr $ (ls -t | head -n1)

Danke für deine Inputs :)

0

1 Antwort auf die Frage

0
Gethen Sullivan

Ich habe es schließlich herausgefunden, ich musste Anführungszeichen in Anführungszeichen setzen, dh dem Befehl Anführungszeichen hinzufügen.

Dies ist der Arbeitsbefehl zum Löschen der neuesten Datei, unabhängig von Sonderzeichen oder Leerzeichen im Namen.

rm -f "" "$ (ls -t | tail -1)" ""

Prost.