2017-08-12 2 views
0

ProblèmeComment créer un fichier avec nom_fichier comme sortie de la commande actuelle?

Je dispose d'un fichier qui est présent dans le dossier /home/user/Samples/ maintenant j'ai un dossier séparé /home/user/Reports/. Supposons que j'ai un exemple de fichier DOG.zip dans le dossier Samples, maintenant je veux générer un rapport de cet échantillon et le stocker dans le dossier Rapports et nommez-le comme MD5 du fichier

Ce que je ne

cd /home/user/Samples/ 
md5sum DOG.zip | xargs touch ../Reports/{} 

Mais cela produit le fichier {} dans le dossier Rapports mais pas un fichier vide avec le nom de fichier md5.

Une suggestion sur la façon de résoudre ce problème?

+0

Je ne sais pas ce que vous voulez. Je pense que vous ne voulez pas 'touch/home/user/Reports/md5'. Quelque chose comme 'file = DOG.zip; md5sum "$ {fichier}"; touchez "../ Reports/$ {file}" ', ou faites cela pour tous les résultats, ou redirigez la sortie de md5 vers un fichier dans les rapports, ou changez le nom de' DOG.zip' en 'DOG.md5'. –

Répondre

1

Vous devez ajouter -i à xargs pour « activer » l'espace réservé {}:

$ seq 10 | xargs echo foo{} 
foo{} 1 2 3 4 5 6 7 8 9 10 
$ seq 10 | xargs -i echo foo{} 
foo1 
foo2 
foo3 
foo4 
foo5 
foo6 
foo7 
foo8 
foo9 
foo10