2016-05-25 9 views
1

Ich konvertiere ein altes System von Windows-Batch-Dateien in PHP, um auf einer Debian-Box zu laufen. Ich habe einige lockige xcopy-Befehle gefunden und frage mich, was der entsprechende Code für sie in PHP wäre.entspricht Windows Xcopy auf PHP?

xcopy src dest /Q /R /S /Y /exclude:c:\exclusions.txt 

xcopy src dest /C /I /Q /R /S /U /Y /exclude:c:\exclusions.txt 

http://ss64.com/nt/xcopy.html sagt mir helfend, was die Schalter sind:

/C = continue if error 
/I = assume destination is a folder 
/Q = quiet (no output) 
/R = overwrite read only files 
/S = copy folders and subfolders recursively 
/U = copy only files that exist in the destination 
/Y = supress prompt to overwrite destination file (and assume YES) 

c:\exclusions.txt nur hat Namen Datei

.ds_store 
thumbs.db 
.git 
.ssh 
.htaccess 
README.MD 

Die Schalter zu überspringen, die ich vor allem über sich fragen /U, /R und /S - Wie man eine Ordnerstruktur rekursiv kopiert nur die passenden Dateien kopieren, die existieren in der Zielstruktur.

Ich stelle mir vor, ich muss exec() von PHP verwenden, aber nicht sicher, was ich ausführen soll. Alle Zeiger geschätzt :)

+0

Siehe die Manpage ['cp' (1)] (http://man7.org/linux/man-pages/man1/cp.1.html) oder' tar'/'pax' und' rsync 'für mehr Feature-Creep. – mario

Antwort

0

gerade Sie für die richtige Richtung, um einen Hinweis zu geben ich mit dem Symfony command line component

beginnen würden Sie könnten dann die Schalter Code -q oder --quiet statt/Q und dann bauen aus die Logik mit phps file Funktionen.

Nachdem Sie all dies gesagt haben, es sei denn, Sie wollen wirklich die Spaß Übung in PHP-Codierung wäre es wahrscheinlich besser, ein Bash-Skript oder ähnliches zu verwenden und den Befehl cp.

+0

Ja, obwohl der Rest des Frameworks in PHP ist, gibt es keinen Grund, es zu verwenden, wenn eine anständige Befehlszeilenoption Exec dasselbe in diesem Fall tun kann. Danke für den Symfony-Zeiger :) – frumbert