Vraag Kopiëren van enkele bestanden vanuit meerdere mappen naar een nieuwe map met meerdere submappen die elk bestand hosten


Ik probeer een enkel specifiek bestand te kopiëren dat zich in 960 submappen in een bovenliggende map bevindt. Elk bestand heeft dezelfde naam maar heeft unieke inhoud.

Ik wil de hiërarchie van de mappen en namen in de nieuwe bovenliggende map behouden, maar wil slechts één specifiek bestand in plaats van alle bestanden in elke submap.

Ik moet ook elk van deze submappen genaamd processorN maken, waarbij N een getal is van 0 tot 959.

Om het even welke ideeën, dit heeft me gestremd en ik kan geen goede oplossing lijken te vinden die me geen uren zal kosten.


0
2017-08-31 13:18


oorsprong


Hallo! Geef een voorbeeld van de huidige en de gewenste directorystructuren. Voor dit doel kun je handmatig een bovenliggende map en een paar submappen aanmaken en dan kun je Bewerk en werk de vraag bij met de uitvoer van de opdracht tree /path/to/parent-dir/. - pa4080


antwoorden:


rsync kan dat doen met wat lastig --include en --exclude vlaggen:

rsync -a -v --include="*/" --include="specific-file.txt" --exclude="*" from/ to/

Hiermee kopieert u alle mappen en de specific-file.txt van from naar to terwijl je al het andere overslaat. Het commando zal de voltooi onderstaande mappenstructuur from en kopieer het naar to. U wil dit misschien eerst uitvoeren met de -n schakel om te zien wat zou gebeuren, dat wil zeggen:

# check:
rsync -a -v -n --include="*/" --include="specific-file.txt" --exclude="*" from/ to/

# actually do:
rsync -a -v    --include="*/" --include="specific-file.txt" --exclude="*" from/ to/

2
2017-08-31 13:51



Ik heb geacteerd, maar misschien de tweede vereiste "... submappen genaamd processorN ..." is niet tevreden - waarschijnlijk iets als rename 's/.+/our $i; sprintf("processor%03d", 0+$i++)/e' * zal het werk doen - meer details. - pa4080
@ pa4080 Misschien wel. Ik dacht aan die processorN directories waren de 960 submappen waar het OP het over had in de eerste paragraaf. Hij zou dat echt moeten verduidelijken, zoals u al had gevraagd. - PerlDuck