2012-03-28 20 views
43

Voglio copiare più file da una directory specifica quando sono in un'altra directory. Per chiarire che voglio fare quanto segue, in una sola volta (un comando):Come copiare più file da una directory diversa usando cp?

cp ../dir5/dir4/dir3/dir2/file1 . 
cp ../dir5/dir4/dir3/dir2/file2 . 
cp ../dir5/dir4/dir3/dir2/file3 . 
cp ../dir5/dir4/dir3/dir2/file4 . 

non posso usare cp ../dir5/dir4/dir3/dir2/* . perché in dir2 ci sono n file (n>4)

A proposito, sto usando bash .

Grazie.

+1

cp fonte Directory -t è un'opzione Questo può essere usato per copiare tutti i file/selezionati da una directory ad un'altra .... – Xander

risposta

72
cp ../dir5/dir4/dir3/dir2/file[1234] . 

o (in Bash)

cp ../dir5/dir4/dir3/dir2/file{1..4} . 

Se i nomi dei file non sono contigue, è possibile utilizzare

cp ../dir5/dir4/dir3/dir2/{march,april,may} . 
+0

grazie in realtà nel caso reale il nome dei file sono completamente diversi. 'cp ../dir5/dir4/dir3/dir2/[march aprile maggio] .' non funziona – ziulfer

+1

Perché non ci dici il vero caso allora? – Philipp

+0

Ho modificato il mio commento precedente – ziulfer

3

Provate questo:

cp ../dir5/dir4/dir3/dir2/file{1..4} 
+0

Funziona solo in bash. OP non ha specificato quale shell sta usando. – Graham

+0

Sto usando bash – ziulfer

5

Se tutti i file che si desidera copiare sono nello schema di file{number}{othertext}, si potrebbe usare qualcosa come:

cp ../dir5/dir4/dir3/dir2/file[0-9]* . 

Si noti che questo copierà file5, ma sarà anche possibile copiare file0abc.

Se si desidera copiare solo i quattro file (e non le {OtherText} quelli), è possibile utilizzare:

cp ../dir5/dir4/dir3/dir2/file[1-4] . 

Nota che, mentre questo sembra come parte di un'espressione regolare, non è.

+0

grazie in realtà nel vero caso il nome dei file è completamente diverso. 'cp ../dir5/dir4/dir3/dir2/[march april may] .' non funzionerà – ziulfer

+0

Ma quella non era la tua domanda. – ghoti

+0

Voglio anche ricordare che 'cp ../dir5/dir4/dir3/dir2/F* .' funziona. Questo è per il caso in cui solo la lettera iniziale nei nomi dei file è la stessa. E solo i file che iniziano con 'F' sono desiderati per essere copiati – smac89

Problemi correlati