Was bedeutet "cp: Verzeichnis auslassen"?

360

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 Nachrichten:

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 bekomme ich diese Nachrichten?

    
MEM 18.04.2011, 17:11
quelle

6 Antworten

468

Standardmäßig kopiert cp nur die direkten Dateien und keine Unterverzeichnisse im Verzeichnis. Die Nachricht cp: omitting directory 'directory' warnt Sie, dass das angegebene Verzeichnis nicht kopiert wird.

Geben Sie dazu die Option -r (oder --recursive ) an:

sudo cp -r ~/Transfers/ZendFramework-1.11.4-minimal/library/Zend/* ~/public_html/cmsk.dev/library/

Die Handbuchseite (Befehl: man cp ) enthält eine Übersicht der verfügbaren Optionen.

    
Lekensteyn 18.04.2011, 17:15
quelle
33

Die Nachricht bedeutet, dass cp die aufgelisteten Verzeichnisse nicht kopiert hat. Dies ist das Standardverhalten für cp - nur Dateien werden normal kopiert, unabhängig davon, ob Sie sie explizit angeben oder * verwenden. Wenn Sie Verzeichnisse kopieren möchten, verwenden Sie den Schalter -r , der "rekursiv" bedeutet.

    
Roger Light 18.04.2011 17:15
quelle
13

Hier einige Dinge, die überprüft werden müssen:

  1. Verwenden Sie nicht sudo . Du brauchst es nicht, du hast bereits die Erlaubnis, Sachen in dein eigenes Home-Verzeichnis zu schreiben.

  2. Sie können verdeckte Dateien und Verzeichnisse im grafischen Dateimanager leicht anzeigen, indem Sie im Menü Ansicht / Versteckte Dateien anzeigen auswählen. Oder indem Sie Strg - H drücken.

  3. Sie müssen die Option -R im Befehl cp verwenden, um ein Verzeichnis und seinen Inhalt zu kopieren.

  4. / home ist nicht Ihr Home-Verzeichnis. / home / Benutzername ist. Sie versuchen wahrscheinlich, von einem falschen Ort zu kopieren.

  5. Bei der Shell wird die Groß- / Kleinschreibung beachtet, also sind ~ / downloads und ~ / Downloads zwei verschiedene Dinge.

Nikunj K. 04.10.2013 09:02
quelle
1

Wenn Sie ein Verzeichnis wie:

kopieren
cp dir1 copy_of_dir1

Sie kopieren nur das dir1 selbst und nicht die darin enthaltenen Dateien. Am Ende erhalten Sie eine neue Verzeichnisstruktur, während die Struktur nicht existiert.

Mit anderen Worten, nachdem es kopiert wurde, wird es sagen, dass mein Inhalt file1 , file2 , usw .; Diese Dateien wurden jedoch nicht kopiert und sind daher nicht darin enthalten.

Um dieses Problem zu beheben, das auftrat, kopiert cp standardmäßig die Verzeichnisse nicht und überspringt sie, wenn Sie nicht die Option -r -Option angeben, die alle Dateien rekursiv kopiert.

    
Ravexina 03.07.2017 09:47
quelle
0

Der Grund, warum omitting directory heißt, ist, dass cp und alle bekannten Kopierprogramme eine Liste von Dateien und Unterverzeichnissen erstellen, die kopiert werden sollen, bevor mit dem Kopieren der Dateien begonnen wird. Wenn die Optionen --recursive fehlen, werden Unterverzeichnisse von dieser Liste entfernt. Auslassen bezieht sich daher auf das Entfernen von der Kopierliste, nicht von Ihrem Quellmedium. Ich glaube, das spricht die Bedeutung der Nachricht an.

    
endrias 24.07.2017 10:32
quelle
-2

Angenommen, Sie haben zwei Verzeichnisse 'Tag' & amp; 'Test'

Wenn Sie das Verzeichnis "Tag" in das Verzeichnis "Test" kopieren möchten, verwenden Sie den Befehl

$ : cp -r Tag Test (case sensitive)

Meistens wird das Problem mit dem obigen Code gelöst, wenn nicht und Sie erhalten eine Nachricht wie

cp: omitting directory 'Tag' 
cp: omitting directory 'Test'

Fügen Sie dann einige Dateien im Verzeichnis "Tag" hinzu und kopieren Sie diese anschließend in "Test". Eigentlich habe ich dasselbe Problem aber gelöst wie das, was ich als zweites gesagt habe.

    
jainmiah shaik 03.07.2017 09:14
quelle

Tags und Links