Elegante Methode zum Kopieren der Verzeichnisliste in das Zielverzeichnis

2

Hintergrund: Ich habe begonnen, beetsmeine Musiksammlung mit zu verwalten. Es verwendet die Befehlszeile als primäre Schnittstelle. Der Befehl gibt beet ls -apbeispielsweise eine Liste von Pfaden (Ordnern) aus, die ein bestimmtes Kriterium erfüllen (z. B. added:2016-01= im Januar 16 zur Bibliothek hinzugefügt).

Ich habe die folgende ziemlich komplexe Befehlszeile erstellt, um die letzten Ergänzungen meiner Bibliothek in ein Zielverzeichnis zu kopieren (denken Sie an einen USB-Stick):

beet ls -ap added:2016-01 | xargs -I{} cp -R {} /target/directory/

Meine Frage: Ist die -IOption Geigen notwendig oder fehlt mir eine einfachere Möglichkeit, um dieselbe Aufgabe zu erledigen? Mein Batch Foo ist leider schwach ...

ojdo
quelle
4
Wenn du die -t( --target-directory) Option von cpvielleicht verwendest? somecommand | xargs cp -R -t /target/directory/
Steeldriver
@steeldriver: Das hätte deine Antwort sein können: $
ojdo
Ich habe geschlafen;) solange du eine gute antwort bekommst ist es egal von wem
steeldriver

Antworten:

3

Verwenden -t

beet ls -ap added:2016-01 | xargs cp -R -t /target/directory

Von man cp

-t, --target-directory=DIRECTORY
    copy all SOURCE arguments into DIRECTORY
AB
quelle