2012-03-28 9 views
43

Ich möchte mehrere Dateien aus einem bestimmten Verzeichnis kopieren, sobald ich in einem anderen Verzeichnis bin. Um zu klären, möchte ich folgendes tun, auf einmal (ein Befehl):Wie kopiert man mehrere Dateien aus einem anderen Verzeichnis mit 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 . 

Ich kann nicht cp ../dir5/dir4/dir3/dir2/* . verwenden, da in dir2 gibt es n Dateien (n>4)

By the way, ich bin mit bash .

Danke.

+1

cp -t Directory-Quelle ist eine Option Dies können Sie alle/ausgewählte Dateien von einem Verzeichnis in ein anderes zu kopieren .... – Xander

Antwort

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

oder (in Bash)

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

Wenn die Dateinamen nicht-zusammenhängend sind, Sie

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

dank tatsächlich im realen Fall die Namen der Dateien vollständig unterschiedlich sind. 'cp ../dir5/dir4/dir3/dir2/[marsch april may] .'. wird nicht funktionieren – ziulfer

+1

Warum erzählst du uns dann nicht den wahren Fall? – Philipp

+0

Ich habe meinen vorherigen Kommentar bearbeitet – ziulfer

3

Versuchen Sie dieses verwenden: Wenn

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

Funktioniert nur in bash. OP hat nicht angegeben, welche Shell er benutzt. – Graham

+0

Ich benutze Bash – ziulfer

5

Alle Dateien, die Sie kopieren möchten, entsprechen dem Muster file{number}{othertext}, könnten Sie so etwas wie verwenden:

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

Beachten Sie, dass diese file5 kopiert, aber es wird auch kopieren file0abc.

Wenn Sie nur die vier Dateien kopieren möchten (und nicht die {othertext} sind), können Sie verwenden:

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

Beachten Sie, dass während dieser sieht wie ein Teil eines regulären Ausdrucks, es ist nicht.

+0

Dank tatsächlich im realen Fall sind die Namen der Dateien völlig unterschiedlich. 'cp ../dir5/dir4/dir3/dir2/[marsch April kann] .'' wird nicht funktionieren – ziulfer

+0

Aber das war nicht deine Frage. – ghoti

+0

Ich möchte auch erwähnen, dass 'cp ../dir5/dir4/dir3/dir2/F* .' funktioniert. Dies ist für den Fall, dass nur der Anfangsbuchstabe in den Dateinamen identisch ist. Und nur diejenigen Dateien, die mit "F" beginnen, sollen kopiert werden – smac89

Verwandte Themen