2012-03-29 5 views
6

Dies ist eine grundlegende Frage, aber ich habe Mühe, eine anständige Lösung zu finden. Dies behindert mein Skript von der Automatisierung.wie man zwischen Ordnern und Elternordner ohne vollständigen Pfad kopiert

Ich habe den folgenden Pfad.

/home/hassan/Dyna/ProjectSimulation 

in Projektsimulation habe ich 3 Ordner

friction time force 

wie

/home/hassan/Dyna/ProjectSimulation/friction 

Jetzt habe ich eine Datei friction1.txt in diesem Reibungs Ordner und ich möchte es ProjectSimulation kopieren.

ist es möglich, den vollständigen Pfad zu vermeiden und nur einen Schritt nach unten?

Auch wenn ich diese reibung1.txt in den Ordner force kopieren muss, gibt es sowieso den kompletten Pfad zu vermeiden.

Ich meine, ich habe eine Unterroutine, aber das ist pfadabhängig, wenn ich es ausführe, muss ich im selben Ordner laufen und dann meine Ergebnisse kopieren, damit ich nur eine Instanz meiner Simulation ausführen kann.

Experten bitte führen Sie mich.

PS: Dies ist Teil einer Shell mit 600 Zeilen.

Antwort

9

Dies wirkt so grundlegend, dass ich etwas in Ihrer Frage missverstanden haben muss.

Wenn Sie auf ein übergeordnetes Verzeichnis verweisen möchten, ist .. der Weg, dies zu tun. Also, wenn Sie friction1.txt an zwei Stellen kopieren möchten tun Sie gerade

cp friction1.txt .. 
cp friction1.txt ../force 

Alles, was Sie brauchen zu kümmern sorgt dafür, dass CWD ist

/home/hassan/Dyna/ProjectSimulation/friction

so dass die Referenzen zeigen an der richtigen Stelle.

0

Sie können temprarily das aktuelle Verzeichnis zu ProjectSimulation ändern, kopieren Sie die Datei (cp friction/friction1.txt .), dann den Pfad zum ursprünglichen ändern zurück (so dass der Rest des Skripts wie vor funktioniert)

Alternativ können Sie dirname verwenden um den Namen des übergeordneten Verzeichnisses zu erhalten und dieses zu verwenden.

0

Wechseln Sie zum Stammverzeichnis Ihrer bekannten Verzeichnisstruktur. Führen Sie dann die Kopiervorgänge mit relativen Pfaden aus. Dann wechsle zurück zu deinem dir, wo du herkommst.

Ihre Freunde sind:

cd 
cd - 

oder besser:

pushd 
popd 

(siehe man bash)

D.h.

pushd /home/hassan/Dyna/ProjectSimulation 
cp friction/friction1.txt . 
cp friction/friction1.txt force 
popd 
Verwandte Themen