Bash -Skriptproblem, Find, MV -Tilde -Dateien, die von Gedit erstellt wurden
Frage
Ich verwende Linux mit Gedit, das die wunderbare Angewohnheit hat, eine TEMP -Datei mit einer Tilde am Ende für jede Datei zu erstellen, die ich bearbeite.
Ich versuche, alle diese Dateien mit Folgendem auf einen anderen Ordner auf einen anderen Ordner zu verschieben:
find . -iname “*.php~” -exec mv {} /mydir \;
Es gibt mir jetzt jedoch Syntaxfehler, als würde es durch jede Datei suchen und versuchen, das Textstück zu verschieben. Ich möchte nur alle Dateien in .php ~ in ein anderes Verzeichnis verschieben. Irgendeine Idee, wie ich das mache?
Prost Ke
Lösung
Probieren Sie diesen One-Liner aus:
for D in `find . -iname "*.php~"`; do mv ${D} /mydir; done
Wenn Sie zur zukünftigen Referenz auf die Registerkarte "Einstellungen"> "Einstellungen"> "Editor" wechseln, gibt es das Kontrollkästchen "Erstellen einer Sicherungskopie von Dateien, bevor Sie sie speichern". Dies ist der Typ, der für das Erstellen der Tilde -Version verantwortlich ist.
Andere Tipps
GNU Finden
find . -iname "*.php~" -exec mv "{}" /mydir +;
oder
for file in *.php~
do
echo mv "$file" /mydir
done