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 ...


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.