
Ich habe ein Makefile, das viele Dateien in meinem Ziel-Build-Verzeichnis installiert. Einige davon sind ausführbar, andere nicht.
Ich habe den install
Befehl mit Flags -D -m 644
für nicht ausführbare Dateien früher unter Linux getestet, aber jetzt funktioniert er nicht mehr. Ich habe festgestellt, dass dieses -D
Flag unter OSX/BSD nicht verfügbar ist, und habe es entfernt. Die Sache ist, ich muss sicherstellen, dass die Komponentenverzeichnisse in den Pfaden der Dateien, die ich installiere, wie erforderlich erstellt werden. Ich dachte, das -d
Flag würde helfen, und habe Dinge in der Art von Folgendem ausprobiert:
install .DS_Store ./tmp/build/some_dir/
...aber es beschwert sich, dass some_dir
es „keine solche Datei oder kein solches Verzeichnis“ gibt, d. h. es existiert nicht (was wahr ist). Ich habe dann dasselbe wie oben versucht, aber mit der -d
Flagge, und bekam einen weiteren Fehler:
install: .DS_Store existiert, ist aber kein Verzeichnis
Ich möchte nur eine mehr oder weniger stabile und allgemeine Möglichkeit, Dateien an das Ziel zu kopieren. Vielleicht sollte ich auf zurückgreifen cp
? Ich kenne jedoch die kleinen, aber wichtigen Unterschiede zwischen den beiden.
Antwort1
install -d
interpretiert alle seine Argumente als Verzeichnisse, die (möglicherweise) erstellt werden müssen. Daher denke ich, dass Sie es mit zwei Befehlen tun müssen:
install -d ./tmp/build/some_dir/
install .DS_Store ./tmp/build/some_dir/