Duplication possible :
Comment déplacer 100 fichiers d'un dossier en contenant des milliers ?
Est-il possible de copier uniquement les 1000 premiers fichiers d'un répertoire à un autre ?
Merci d'avance
Réponse acceptée :
Ce qui suit copie les 1000 premiers fichiers trouvés dans le répertoire courant vers $destdir
. Bien que les fichiers réels dépendent de la sortie renvoyée par find
.
$ find . -maxdepth 1 -type f |head -1000|xargs cp -t "$destdir"
Vous aurez besoin de l'implémentation GNU de cp
pour -t
, un find
compatible GNU pour -maxdepth
. Notez également qu'il suppose que les chemins de fichiers ne contiennent pas d'espaces, de nouvelles lignes, de guillemets ou de barres obliques inverses (ou de caractères non valides ou sont plus longs que 255 octets avec certains xargs
implémentations).
MODIF : Pour gérer les noms de fichiers avec des espaces, des retours à la ligne, des guillemets, etc., vous pouvez utiliser des lignes terminées par un caractère nul (en supposant une version de head
qui a le -z
option):
find . -maxdepth 1 -type f -print0 | head -z -n 1000 | xargs -0 -r -- cp -t "$destdir" --