Je suis un utilisateur Linux novice et j'essaie d'envoyer une longue liste de fichiers d'un ordinateur à un autre. La liste des arguments est trop longue, j'utilise donc find. J'ai cependant du mal à configurer l'expression. Quelqu'un peut-il aider?
Voici ce que je tape normalement pour une courte liste d'arguments.
scp ./* phogan@computer/directory...
Voici, je pense que cela pourrait se traduire par find.
scp find . -name "*" phogan@computer/directory...
Peut-être que je pourrais utiliser des tuyaux? Toutes les suggestions seraient utiles. Merci d'avance.
Vous pouvez le faire avec une seule commande
scp
.scp
:Assurez-vous d'encapsuler la
find
commande entre les guillemets ` et non les guillemets simples ' .la source
scp `find <path> -name <expression>` user@host:<path_where_to_copy>
-r
scp -r
est pour la récursivité sur une seule entrée (répertoire), pas pour plusieurs entrées (plusieurs fichiers).la source
grep -l pattern *
je voudrais suggerer
Notez que cette solution évite d'avoir les noms de fichiers sur la ligne de commande où ils pourraient être interprétés comme des arguments de ligne de commande.
Une autre chose à surveiller est que les noms de fichiers peuvent contenir des espaces. Cela signifie qu'une boucle for dans bash peut avoir des difficultés avec une liste de noms de fichiers.
la source