GNU/Linux >> Tutoriels Linux >  >> Linux

Dupliquer le fichier X fois dans le shell de commande ?

J'essaie de dupliquer un fichier vidéo x fois depuis la ligne de commande en utilisant une boucle for, j'ai essayé comme ça, mais ça ne marche pas :

for i in {1..100}; do cp test.ogg echo "test$1.ogg"; done

Réponse acceptée :

Votre code shell a deux problèmes :

  1. L'echo ne devrait pas être là.
  2. La variable $i est mal orthographié comme $1 dans le nom du fichier de destination.

Pour faire une copie d'un fichier dans le même répertoire que le fichier lui-même, utilisez

cp thefile thecopy

Si vous y insérez autre chose, par exemple

cp thefile theotherthing thecopy

alors on suppose que vous souhaitez copier thefile et theotherthing dans le répertoire appelé thecopy .

Dans votre cas, il recherche spécifiquement un fichier appelé test.ogg et un nommé echo à copier dans le répertoire test$1.ogg .

Le $1 se développera très probablement en une chaîne vide. C'est pourquoi, lorsque vous supprimez le echo à partir de la commande, vous obtenez "test.ogg et test.ogg sont les mêmes fichiers" ; la commande en cours d'exécution est essentiellement

cp test.ogg test.ogg

Il s'agit probablement d'une faute de frappe.

Au final, vous voulez quelque chose comme ça :

for i in {1..100}; do cp test.ogg "test$i.ogg"; done

Ou, comme alternative

i=0
while (( i++ < 100 )); do
  cp test.ogg "test$i.ogg"
done

Ou, en utilisant tee :

tee test{1..100}.ogg <test.ogg >/dev/null

Remarque :Cela fonctionnerait très probablement pour 100 copies, mais pour des milliers de copies, cela pourrait générer une erreur "liste d'arguments trop longue". Dans ce cas, revenez à l'utilisation d'une boucle.


Linux
  1. Commande wc Linux

  2. Commande grep Linux

  3. Commande Linux pour concaténer un fichier à lui-même n fois

  4. À quoi sert Linux test -a command test ?

  5. Comment exécuter une commande plusieurs fois à l'aide du shell bash ?

Commande Gunzip sous Linux

Commande Stat sous Linux

Commande source sous Linux

Comment rediriger la sortie de la commande shell

Interface de commandes

Qu'est-ce qu'un fichier .sh ?