Ich habe den folgenden Befehl ausgegeben:
sudo cp ~/Transfers/ZendFramework-1.11.4-minimal/library/Zend/* ~/public_html/cmsk.dev/library/
Wenn ich das mache, bekomme ich die folgenden Meldungen:
cp: omitting directory `Tag'
cp: omitting directory `Test'
cp: omitting directory `Text'
cp: omitting directory `TimeSync'
cp: omitting directory `Tool'
cp: omitting directory `Translate'
cp: omitting directory `Uri'
cp: omitting directory `Validate'
und so weiter...
Warum erhalte ich diese Nachrichten?
*
wird von Bash erweitert, nicht voncp
. Testen Sie es selbst, indem Sie sichecho
Ihrem Befehl stellen. Wenn es erweitert wird, ordnet es alles einem vorhergehenden zu...library/Zend/
(die Dateien und Verzeichnisse darin).omitting directory 'directory'
dass das Verzeichnis nicht gelöscht wird.chmod a+rx ~/
nachdem ich versucht habe, mitcp /home/2110/* /home/2111/
ihm zu kopieren . wo ich mich geirrt habe Es tut mir leid, einen Kommentar abzugeben, da ich keine doppelten Fragen stellen kann. Ich hoffe auf schnelle Antwort :)/home/2110
gehören dem Benutzer 2110, während Dateien in dem Benutzer 2111/home/2111
gehören sollen. Verwenden Sie zum Festlegen des Eigentümers so etwas wiesudo chown -R 2111 /home/2111
.Die Meldung bedeutet, dass
cp
die aufgelisteten Verzeichnisse nicht kopiert wurden. Dies ist das Standardverhalten fürcp
- Nur Dateien werden normal kopiert, unabhängig davon, ob Sie sie explizit angeben oder verwenden*
. Wenn Sie Verzeichnisse kopieren möchten, verwenden Sie den-r
Schalter, der "rekursiv" bedeutet.quelle
Einige Dinge, die hier überprüft werden müssen:
Nicht verwenden
sudo
. Sie brauchen es nicht, Sie haben bereits die Berechtigung, Inhalte in Ihr eigenes Home-Verzeichnis zu schreiben.Sie können versteckte Dateien und Verzeichnisse im grafischen Dateimanager einfach anzeigen, indem Sie im Menü die Option "Versteckte Dateien anzeigen" auswählen. Oder durch Drücken von Ctrl- H.
Sie müssen die
-R
Option imcp
Befehl verwenden, um ein Verzeichnis und seinen Inhalt zu kopieren./ home ist nicht Ihr Home-Verzeichnis. / home / benutzername ist. Sie versuchen also wahrscheinlich, von einer falschen Stelle zu kopieren.
Die Shell unterscheidet zwischen Groß- und Kleinschreibung, also sind ~ / downloads und ~ / Downloads zwei verschiedene Dinge.
quelle
Wenn Sie ein Verzeichnis wie folgt kopieren:
Sie kopieren nur und genau das
dir1
Selbst und nicht die darin enthaltenen Dateien. Am Ende erhalten Sie eine neue Verzeichnisstruktur, während die Struktur nicht vorhanden ist.Mit anderen Worten , nachdem er es kopiert wurde , wird sagen , dass mein Inhalt ist
file1
,file2
usw; Diese Dateien wurden jedoch nicht kopiert und existieren daher nicht darin.Um dieses Problem zu beheben, das möglicherweise
cp
standardmäßig auftritt, werden die Verzeichnisse nicht kopiert und übersprungen, es sei denn, Sie geben eine-r
Option an, mit der alle Dateien auch rekursiv kopiert werden.quelle
Der Grund dafür
omitting directory
istcp
, dass alle mir bekannten Kopierprogramme eine Liste der zu kopierenden Dateien und Unterverzeichnisse erstellen, bevor Sie mit dem Kopieren der Dateien beginnen. Wenn die--recursive
Optionen fehlen, werden Unterverzeichnisse von dieser Liste gestrichen. Das Weglassen bezieht sich daher auf das Entfernen aus der Kopierliste, nicht von Ihrem Quellmedium. Ich glaube, das spricht die Bedeutung der Botschaft an.quelle
Mit dem Befehl cp werden Dateien und Verzeichnisse kopiert, nicht die verschachtelten Verzeichnisse. Wenn Sie verschachtelte Verzeichnisse kopieren möchten, können Sie danach -r hinzufügen , wobei -r rekursiv bedeutet.
Syntax, der Sie folgen können (als root ausgeführt):
oder
quelle
Angenommen, Sie haben zwei Verzeichnisse 'Tag' und 'Test'
Wenn Sie das 'Tag'-Verzeichnis in das' Test'-Verzeichnis kopieren möchten, verwenden Sie den Befehl
Meistens wird das Problem mit dem obigen Code gelöst, wenn nicht, und Sie erhalten die folgende Nachricht wie
Fügen Sie dann einige Dateien im Verzeichnis 'Tag' hinzu und kopieren Sie diese in das Verzeichnis 'Test'. Eigentlich habe ich das gleiche Problem aber gelöst wie das, was ich zweitens gesagt habe.
quelle