2013-06-10 1 views
1

J'ai besoin de copier un ensemble de fichiers sous Linux d'un répertoire à un autre (~ 100 fichiers). Et j'ai besoin de les copier avec un délai défini: 1 seconde par exemple. Si je les copie avec la commande "cp", ça va très vite. Les tailles de fichiers sont seulement quelques kb.Comment copier un ensemble de fichiers avec un délai défini

Je n'ai pas trouvé de clés pour la commande "cp" pour copier des fichiers avec délai.

Les noms de fichiers sont différents et contiennent le temps + identifiant, il est donc pas facile à utiliser contre simple comme:

for (i = 0, i<100, i++){ 
    filename = "name" + i 
} 

Comment réaliser cette tâche avec un script simple?

je pense que ce devrait être quelque chose comme:

list a = ls "current dir" 
while list[i] != null 
    cp list[i] "destFolder" 
    i++ 

Merci pour l'aide

Right answer: find ./folder1/* -exec cp {} folder2/ \; -exec sleep 3 \; 
+0

Utiliser '' ou cron' à cette fin. http://www.ibm.com/developerworks/library/l-job-scheduling/index.html –

+1

Pourquoi avez-vous besoin du délai? Pour donner un peu de repos au processeur? – devnull

+0

Je dois tester une application qui recevra environ 100 fichiers par jour et environ 1 fichier par minute de vitesse maximale et devrait les traiter correctement. Donc je n'ai pas besoin de recevoir tous les fichiers immédiatement –

Répondre

3

vous pouvez utiliser avec exec trouver par exemple

find . -exec cp {} ../newdir \; -exec sleep 1 \; 
+0

Oui ça marche et c'est simple! Merci! –

Questions connexes