Domanda Cosa significa "cp: omitting directory"?


Ho emesso il seguente comando:

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

Quando faccio questo, comincio a ricevere i seguenti messaggi:

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' 

e così via...

Perché ricevo questi messaggi?


365
2018-04-18 15:11


origine




risposte:


Di default, cp copia solo i file diretti in e non le sottodirectory nella directory. Il messaggio cp: omitting directory 'directory' ti avverte che la directory menzionata non è stata copiata.

Per fare ciò, specificare il -r (o --recursive) opzione:

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

Il pagina di manuale (comando: man cp) contiene una panoramica delle opzioni disponibili.


476
2018-04-18 15:15



Molte grazie. Ho pensato che * lo tratterò ricorsivamente in qualche modo. Ma no. : D Grazie ancora. :) - MEM
@MEM: il * è espanso da Bash, non da cp. Provalo tu stesso mettendo echo  di fronte al tuo comando. Quando espanso, corrisponde a tutto con un precedente ...library/Zend/ (i file e le directory in esso contenuti). - Lekensteyn
La buona notizia è questa omitting directory 'directory' non significa che sta cancellando quella directory. - Bishwas Mishra
@Lekensteyn stavo cercando di copiare il contenuto di un utente su un altro. Così ho ottenuto il permesso dell'utente con chmod a+rx ~/ dopo ho provato a copiare con cp /home/2110/* /home/2111/ produce un errore che dichiara il permesso negato. dove ho sbagliato mi dispiace commentare perché non posso fare domande doppie. spero per una rapida risposta :) - jasinth premkumar
@jasinthpremkumar File in /home/2110 sono di proprietà dell'utente 2110 mentre i file sono in /home/2111 dovrebbero essere di proprietà del 2111. Per impostare il proprietario, utilizzare qualcosa di simile sudo chown -R 2111 /home/2111. - Lekensteyn


Il messaggio significa questo cp non ha copiato le directory elencate. Questo è il comportamento predefinito per cp - solo i file vengono copiati normalmente, indipendentemente dal fatto che vengano specificati o utilizzati esplicitamente *. Se vuoi copiare le directory usa il -r interruttore che significa "ricorsivo".


34
2018-04-18 15:15





Un paio di cose qui che devono controllare:

  1. Non usare sudo. Non ne hai bisogno, hai già le autorizzazioni per scrivere cose nella tua home directory.

  2. È possibile visualizzare facilmente i file e le directory nascosti nel gestore file grafico selezionando Visualizza / Mostra file nascosti dal menu. O premendo Ctrl - H.

  3. Devi usare il -R opzione nel cp comando per copiare una directory e il suo contenuto.

  4. / home non è la tua home directory. / home / nome utente è. Quindi probabilmente stai cercando di copiare dal posto sbagliato.

  5. La shell è case sensitive, quindi ~ / downloads e ~ / Downloads sono due cose diverse.


14
2017-10-04 07:02





Quando copi una directory come:

cp dir1 copy_of_dir1

Stai solo ed esattamente copiando il dir1 stesso e non i file al suo interno, così alla fine si finirà con una nuova struttura di directory mentre la struttura non esiste.

In altre parole, dopo che è stato copiato, dirà che il mio contenuto è file1, file2, eccetera; Tuttavia questi file non sono stati copiati e quindi non esistono in esso.

Quindi, per risolvere questo problema che potrebbe sorgere cp per impostazione predefinita, non copia le directory e le salta a meno che non venga specificato -r opzione che copia anche tutti i file in modo ricorsivo.


2
2017-07-03 07:47





La ragione per cui dice omitting directory è perché cp e tutte le utility di copia, che conosco, creano un elenco di file e sottodirectory da copiare prima di iniziare a copiare i file. Quando il --recursive mancano le opzioni, le sottodirectory vengono cancellate da questo elenco. In quanto tale, omettere si riferisce alla rimozione dall'elenco di copie, non dal supporto di origine. Credo che questo indirizzi il significato del messaggio.


1
2017-07-24 08:32





Supponiamo che tu abbia due cartelle "Tag" e "Test"

Se si desidera copiare la directory 'Tag' in 'Test', utilizzare il comando use

$ : cp -r Tag Test (case sensitive)

Per lo più il problema sarà risolto con il codice sopra, se no, e si ottiene sotto messaggio come

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

quindi aggiungi alcuni file nella directory "Tag" e copialo in "Test". In realtà ho lo stesso problema, ma ho risolto come ho detto in secondo luogo.


-1
2017-07-03 07:14