Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/06/2010, à 20:14

omnimax

comment copier les x derniers fichiers?

bonjour tout est dans mon titre, merci pour vos réponses.


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#2 Le 20/06/2010, à 20:33

helly

Re : comment copier les x derniers fichiers?

On fait rarement plus explicite hmm


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#3 Le 20/06/2010, à 21:29

omnimax

Re : comment copier les x derniers fichiers?

Comment copier (du verbe copier permettant de faire une sauvegarde à l'identique ) les x (abréviation voulant dire un nombre) derniers fichiers (document numérique sauvegardé sur un ordinateur appelé aussi pc)

Dernière modification par greg2007 (Le 20/06/2010, à 21:30)


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#4 Le 20/06/2010, à 21:32

helly

Re : comment copier les x derniers fichiers?

rsync est la solution


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#5 Le 20/06/2010, à 21:48

nesthib

Re : comment copier les x derniers fichiers?

pour les 10 fichiers les plus récents :

find . -type f -printf "%TY-%Tm-%Td %TT %p\n" | sort -r | awk 'NR < 11 {print $3}' | xargs -I {} cp {} dossier_cible/

(comme tu n'as donné aucune précision, la recherche est récursive)


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#6 Le 20/06/2010, à 21:51

gilbert

Re : comment copier les x derniers fichiers?

greg2007 a écrit :

Comment copier (du verbe copier permettant de faire une sauvegarde à l'identique ) les x (abréviation voulant dire un nombre) derniers fichiers (document numérique sauvegardé sur un ordinateur appelé aussi pc)

on a compris ta phrase.. c'est juste qu'elle n'a pas beaucoup de sens...

for FILE in $(find . -maxdepth 1 -type f -name "[[:alnum:]]*" | tail -n LIMIT); do cp "$FILE" DEST; done

où tu remplaces LIMIT par le nombre correspondant à tes derniers fichiers et DEST par le dossier de destination...


Simplement moi-même..

Hors ligne

#7 Le 21/06/2010, à 00:47

Elzen

Re : comment copier les x derniers fichiers?

greg2007 a écrit :

Comment copier (du verbe copier permettant de faire une sauvegarde à l'identique ) les x (abréviation voulant dire un nombre) derniers fichiers (document numérique sauvegardé sur un ordinateur appelé aussi pc)

C'est cool : tu as tout explicité, sauf ce qu'il aurait fallu.

Non parce que la difficulté majeure de compréhension de la phrase d'origine porte quand même sur "derniers" : veux-tu dire les derniers fichiers créés, ou ceux ayant été modifiés le plus récemment ? Veux-tu dire ceux qui occupent la position la plus “lointaine” sur le disque ? Ceux qui sont classés en dernier par ordre alphabétique ? Ou n'importe quelle autre critère permettant d'ordonner les fichiers du premier au dernier, parce qu'on peut en imaginer un nombre particulièrement impressionnant.
Accessoirement, il faut préciser aussi si tu considères un seul répertoire (avec ou non ses descendants éventuels), toute une partition (prédéterminée ou non) ou l'ensemble du système de fichiers.

Ah, et tant qu'on en est à pinailler, x n'est pas une abbréviation, plutôt une appellation usuelle. Et comme on peut supposer que tu es parfaitement capable de savoir faire un cp sans aide, sans davantage d'explicitations, il est probable que la question qui t'intéressait véritablement n'était pas de savoir les copier, mais de savoir les lister, parce que dans l'état, la réponse appropriée à ta question de titre est « bah tu prends les x derniers fichiers et tu les copies. »

Tu sais, j'voudrais pas être méchant, hein, mais tout le monde n'est pas au courant de ce que tu veux faire. Juste dire « tout est dans le titre » sans expliciter ne serait-ce qu'un minimum le contexte, c'est rarement le meilleur moyen d'éclairer tes interlocuteurs. Et je reconnais volontiers que notre chère helly aurait pu demander des précisions d'une manière un peu plus élégante, mais ce genre de réponses a très peu de chances d'améliorer les choses.

Hors ligne

#8 Le 21/06/2010, à 21:38

omnimax

Re : comment copier les x derniers fichiers?

oui merci à tous.

Tu as raison Arkseth mais honnêtement en répondant de la sorte à Helly, je me suis un peu amusé mais sans méchanceté big_smile pour moi ça paraissait logique : les derniers fichiers modifiés...comme quoi smile


par contre je suis hyper surpris de vos soluces, j'imaginais une soluce beaucoup plus simple. Qu'à cela ne tienne, j'intégrerai ce bout de code dans une fonction de mon .zshrc

Bonne soirée.

Dernière modification par greg2007 (Le 21/06/2010, à 21:40)


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#9 Le 21/06/2010, à 22:00

Elzen

Re : comment copier les x derniers fichiers?

Mon pseudo prend deux majuscules (et celui d'helly n'en prend pas, il paraît)

Et je viens de trouver (après deux minutes de recherche dans le man) une solution assez simple, à condition que les noms de fichiers ne comportent pas d'espaces :

ls -t | tr "\n" " " | cut -d" " -f-x

ls -t classe les fichiers par date de dernière modification, en plaçant les derniers fichiers en premier.
tr "\n" " " remplace les retours à la lignes (qui séparent les résultats de ls) par des espaces, parce que sinon, cut râle.
cut -d" " -f-x ne garde que les x premiers noms de fichiers (c'est là que ça coince s'il y a déjà des espaces dans les noms).

Il suffit ensuite de reprendre chacun des fichiers renvoyés par ça et de les copier, ça je te laisse faire wink

Edit : d'ailleurs on peut simplifier un peu en utilisant une commande appropriée :

ls -t | head -n x

Dernière modification par ArkSeth (Le 22/06/2010, à 00:49)

Hors ligne