2010-12-16 6 views

Antwort

10

Nein, wenn Sie in der Bash sind, können Sie immer tun:

for thefile in *.orig ; do cp -v $thefile ${thefile%%.orig} ; done 
+7

Und in Windows-Eingabeaufforderung mit Command Extensions aktiviert, können Sie 'for/f% ii tun n ('dir/s/b * .orig') tu @copy% i% ~ dpni' – leoger

+0

@leoger: Wow ... Das sieht im Grunde nach Zeilenrauschen aus. Ich glaube, so fühlen sich Nicht-Programmierer, wenn sie Shell sehen ... –

+0

@david: es sieht für mich auch nach Zeilenrauschen aus! Ich musste 'Hilfe für' tun, um die variablen Slicing-Operatoren nachzuschlagen :) d für Laufwerk, p für Pfad, n für Name (im Gegensatz zu Name plus Dateierweiterung) – leoger

0

Nein, aber Ihr Betriebssystem bietet wahrscheinlich cp Befehl (oder gleichwertig). Kopieren Sie einfach .orig auf die wiederhergestellte Datei, oder, falls Sie die Datei in der gewünschten Version festgeschrieben haben, stellen Sie sie erneut von dieser Version wieder her.

+0

Richtig, ich versuche nur, dies für 15 Dateien zu vermeiden ... –

2

Dieser Befehl wird Ihre .orig Dateien von überall in Ihrem Repo wieder einzusetzen:

[alias] 
reinstate= !find `$HG root` -name *.orig -exec rename -f 's/.orig//' {} \; 

Und dann laufen:

find `hg root` -name *.orig -exec rename -f 's/.orig//' {} \; 

Sie einen hg alias für diese in Ihrem .hgrc wie so hinzufügen Es von Ihrem Repo mit diesem Befehl:

+0

Sie können auch '-v' zum umbenennen Befehl hinzufügen, um die umbenannten Dateien zu sehen –

+0

FYI, ich musste die '* .orig' in Anführungszeichen umwandeln Verhindere, dass die Shell versucht, diesen Stern zu erweitern. –

Verwandte Themen