Ich habe im Rahmen einer Schulaufgabe folgendes Problem:
NOTIZ:Falls das Lesen im Bild oben schwierig ist, hier die Verzeichnisstruktur:
$ tree
.
`-- sample_dir1
`-- sample_dir
|-- admin
|-- cambridge
| |-- cafeteria
| |-- library
| `-- security
| |-- annex
| |-- building
| `-- parking
|-- faculty
|-- history.exe
|-- markham
| |-- annex
| |-- building1
| `-- parking
|-- oxford
| |-- outline.doc
| |-- programming
| | `-- report.pdf
| `-- security
`-- stenton
|-- gen_ed
`-- lib_arts
|-- english.txt
`-- match.doc
15 directories, 11 files
Ich habe versucht, den folgenden Befehl auszuführen:
$ cp ../cambridge/security/parking ./parking2
...aber es funktioniert nicht. Die Frage im obigen Bild besagt, dass das aktuelle Verzeichnis ist stenton
und dass wir eine Kopie der Datei mit dem Namen parking
(aus dem security
Verzeichnis) erstellen und die neue Datei benennen parking2
und im aktuellen Verzeichnis stenton
unter Verwendung relativer Pfadnamen ablegen müssen.
Was mache ich falsch? Mein cp
Befehl scheint korrekt zu sein.
Antwort1
Das Problem, auf das Sie stoßen, scheint bei Ihrem Hausaufgabenprogramm zu liegen.
Aus Ihrem Kommentar zur anderen Antwort geht hervor, dass Sie Folgendes versucht haben:
cp ../cambridge/security/parking ./parking2
Dies ist ein vollkommen gültiger Befehl in einer normalen Shell. Das Problem liegt jedoch wahrscheinlich darin, dass Ihr Testprogramm das nicht ./
möchte ./parking2
.
Wenn Sie den Pfad zu einer Datei angeben (mit praktisch jedem Programm, nicht nur ), wird der Pfad implizit zu , cp
wenn er keinen Anfangsbuchstaben hat . Sie sollten also auf der sicheren Seite sein, wenn Sie Ihren Befehl wie folgt ändern:/
./
cp ../cambridge/security/parking parking2
Antwort2
Dies ist eine sehr elementare Frage. Ich würde die Manpages dazu nachlesen. Aber nichtsdestotrotz ist hier Ihre Antwort:
cp <SOURCE> .
Zum Beispiel:
Ich habe eine Datei in diesem Verzeichnis: /home/rkah/sample1
Die Datei heißt:sample
Angenommen, ich möchte zu meinem Home-Verzeichnis wechseln (das hier lautet:) /home/rkah/
und sample
nach kopieren /home/rkah/
. Dann würde ich den folgenden Befehl ausführen:
cp ~/sample/sample .
Das .
Symbol steht für das aktuelle Arbeitsverzeichnis bzw. das Verzeichnis, in dem ich mich gerade befinde.