2015-04-14 10 views
12

Mi chiedo se esiste un comando identico per copiare una cartella nella directory corrente come faceva con il vecchio MS-DOS. Diciamo che la mia attuale posizione della directory è:Comando di Linux cp per copiare una cartella nella directory corrente

/var/www/ 

ho cartelle e file in:

/home/hope/subfolder/docs/ 
/home/hope/subfolder/images/ 
/home/hope/subfolder/.config 
/home/hope/subfolder/readme.txt 

So che il seguente comando:

cp -rT /home/hope/subfolder . 

copierà tutti i file (anche dot hidden files) e le cartelle all'interno della cartella "sottocartella" nella directory corrente, quindi il risultato sarà:

/var/www/docs/ 
/var/www/images/ 
/var/www/.config 
/var/www/readme.txt 

Sembra che il comando a quella di copiare la cartella di origine alla posizione corrente è:

cp -rT /home/hope/subfolder ./subfolder 

anche se questo va bene, trovo che a volte mi farò degli errori per i nomi delle cartelle complicati per la destinazione, così c'è un modo per utilizzare un comando come:

cp -rT /home/hope/subfolder . 

o simili

cp -rT /home/hope/subfolder /var/www/. 

per avere il seguente risultato:

/var/www/subfolder/docs/ 
/var/www/subfolder/images/ 
/var/www/subfolder/.config 
/var/www/subfolder/readme.txt 

Grazie.

+0

Hai provato cp -r/home/hope/sottocartella/var/www/ –

+0

Basta omettere il parametro '-T' e farà esattamente quello che vuoi. – foobar

risposta

19

basta omettere il parametro -T, come questo è ciò che impedisce il comando di funzionare correttamente:

cp -r /home/hope/subfolder . 

Il parametro -T tratta l'argomento di destinazione come un file, in modo che nessun copiatura viene eseguita affatto se quel è in realtà una directory.

Un amichevole promemoria: praticamente tutti i comandi Unix hanno un argomento della riga di --help comando che vale la pena di provare, in caso di problemi :)

+0

Vedo :) Ciò consentirà anche la copia di file nascosti all'interno della "sottocartella"? Grazie! – user702300

+0

Lo farà sicuramente. –

0

Per me il principale ostacolo è stata la parte/home. Avevo bisogno di copiare i file da una cartella nella mia casa che iniziava con la lettera 'a' nella mia cartella corrente, che non era a casa. Così ho usato:

cp home/tmp/a* ./ 

questo ha funzionato per me. Stavo cercando comandi come:

cp ~/home/tmp/a* ./ 

ma non ha funzionato.

Problemi correlati