In Linux find
kann sehr mächtig sein.
Sie können verwenden
OutDir="$/include/header/cocos/" # Linux is case sensitive, Check if mkdir -p "$" # it is needed Cocos or cocos... cd ./Frameworks/Cocos # just to have clean path to create # Here with only one line find . -name "*.h" -exec bash -c 'cp -p --parents {} "$" ' \; # cd - # Eventually to come back to the previous path
Hinweise:
cp -p
Eigentumsvorbehalt beibehalten ...
cp --parents
Zielverzeichnis erstellen, das Basisverzeichnis muss jedoch vorhanden sein.
mkdir -p
Erstellen Sie das Verzeichnis mit dem Pfad der Eltern ohne Fehler, falls es nur
man find
für alle Suchoptionen existiert .
Wenn Sie in der Nähe des Skriptes bleiben möchten
cd "$" echo 'Copying Cocos Headers into Framework..' StartSearchDir="$../Frameworks/Cocos" BaseDestDir="$/include/header/cocos/" cd $StartSearchDir for H in `find . -name "*.h"`; do echo "$" PathFileDir=$(dirname $H) mkdir -p "$/$" # no error, make parents too cp -p "$H" "$/$/" # preserve ownership... # ditto -V "$" "$/include/header/cocos/" # commented line done
Beachten dirname
Sie, dass Sie aus einem vollständigen Pfad + Dateinamen nur den Pfad extrahieren können.
Überprüfen Sie die Hilfe mit man dirname
undman basename