2017-08-08 3 views
0

J'essaie de trouver un fichier aléatoire 1 et de passer à un emplacement différent en utilisant la ligne de commande. La commande suivante affiche le fichier,Comment déplacer des fichiers avec find et head

find . -maxdepth 1 -type f -name '[!.]*' | head -n 1

Maintenant, je suis en train de l'utiliser pour déplacer le fichier vers un autre emplacement, par exemple/home/etl dans l'exemple donné. Cependant, je reçois la tête d'erreur: option non valide - 'e'

find . -maxdepth 1 -type f -name '[!.]*' | head -n 1 -exec mv {} /home/etl 

Pourriez-vous s'il vous plaît me corriger.

Répondre

1

La commande find se termine par le symbole de tuyau | vous ne pouvez donc pas continuer à utiliser l'option -exec qui est un paramètre find derrière cela. Vous pouvez utiliser xargs pour faire quelque chose de similaire.

find . -maxdepth 1 -type f -name '[!.]*' | head -n 1 |xargs -I'{}' mv {} /home/etl