#1 Le 13/07/2011, à 11:48
- wrx
[Résolu]Déplacer/copier des fichiers triés vers plusieurs répertoires
Bonjour,
Je cherche une ou plusieurs lignes de commandes ou un script pour effectuer le déplacement de fichiers triés (par exemple par date) dans (un ou) plusieurs répertoires.
Affichage trié par date de modification :
$ l -tlu
total 20K
-rw-r--r-- 1 3 2011-07-13 09:22 fichier2.png
-rw-r--r-- 1 0 2011-07-13 09:22 fichier1.txt
-rw-r--r-- 1 0 2011-07-13 09:14 fichier7.pdf
drwxr-xr-x 2 4,0K 2011-07-13 09:08 copy_dir
-rw-r--r-- 1 0 2011-07-13 09:04 afichier6.txt
-rw-r--r-- 1 3 2011-07-13 09:01 fichier5.txt
-rw-r--r-- 1 3 2011-07-13 09:01 fichier4.txt
-rw-r--r-- 1 3 2011-07-13 09:01 fichier3.txt
donc, les fichiers sont
$ ls -tu
fichier2.txt fichier1.txt fichier7.txt copy_dir afichier6.txt fichier5.txt fichier4.txt fichier3.txt
Question 1: Comment faire passer ces fichiers vers la commande mv?
Par exemple je prends 2 fichiers (OK) :
$ ls -tu | tail -n 2
fichier4.txt
fichier3.txt
et je les déplace (pas OK) :
$ ls -tu | tail -n 2 | cp copy_dir/
cp: opérande du fichier cible manquant après «copy_dir/»
Saisissez « cp --help » pour plus d'informations.
ou
$ ls -tu | tail -n 1 > cp copy_dir/
tail: impossible d'ouvrir «copy_dir/» en lecture: Aucun fichier ou dossier de ce type
qui me créé un fichier cp.
Bon là, ça ne marche pas, mais voilà l'idée.
D'ailleurs il ne faut pas déplacer les répertoires .
Question 2 : Est-il possible d'afficher les fichiers uniquement ?
Je n'ai pas trouvé article/forum traitant cette idée.
Merci.
Dernière modification par wrx (Le 15/07/2011, à 12:15)
Hors ligne
#2 Le 13/07/2011, à 12:56
- wrx
Re : [Résolu]Déplacer/copier des fichiers triés vers plusieurs répertoires
Pour afficher uniquement les fichiers on peut utiliser :
ls *.*
À condition que les fichiers contiennent dans leur nom une extension(ou plus précisement un point).
Je viens de découvrir la commande xargs, mais je n'ai pas réussi à trouver la commande exacte (si elle existe) :
$ ls *.* | xargs
afichier6.txt fichier1.txt fichier2.txt fichier3.txt fichier4.txt fichier5.txt fichier7.txt
puis :
$ ls *.* | xargs mv repertoire1
mv: la cible «fichier7.txt» n'est pas un répertoire
xargs me semble traiter uniquement les fichiers du tube.
Hors ligne
#3 Le 15/07/2011, à 09:19
- wrx
Re : [Résolu]Déplacer/copier des fichiers triés vers plusieurs répertoires
Au moins me dire si c'est trop simple ou trop compliqué .
Hors ligne
#4 Le 15/07/2011, à 10:44
- Brunod
Re : [Résolu]Déplacer/copier des fichiers triés vers plusieurs répertoires
Salut
Fais une recherche dans ce forum sur répertoire magique tri automatique... Il y avait un truc à ce sujet que j'ai lu il y a pas mal de temps.
BD
EDIT : Ah, voila : http://forum.ubuntu-fr.org/viewtopic.php?id=144237
Dernière modification par Brunod (Le 15/07/2011, à 10:45)
Windows est un système d'exploitation de l'homme par l'ordinateur. Linux, c'est le contraire...
39 pc linux convertis
Hors ligne
#5 Le 15/07/2011, à 10:52
- patoubuntu
Re : [Résolu]Déplacer/copier des fichiers triés vers plusieurs répertoires
Bonjour wrc,
je découvre ton message.
une solution peut-être pour réaliser ta commande :
$ ls -tu | tail -n 2 | cp copy_dir/
=> $ cp $( ls -tu | tail -n 2 ) copy_dir/
Le shell interprète en premier la commande entre parenthèse (On appelle ça la substitution de commande) et permet de mettre les fichiers désirés comme arguments à la commande cp.
Hors ligne
#6 Le 15/07/2011, à 12:14
- wrx
Re : [Résolu]Déplacer/copier des fichiers triés vers plusieurs répertoires
Merci beaucoup à vous.
Brunod : je n'avais pas pensé au mot clef "magique" dans ma recherche .
Je devrais pouvoir adapter le code qui est ici à mes besoins (devoir maison). Ce n'est pas loin de ce que je veux faire. De plus c'est un script .
patoxubuntu : c'est exactement ce que je voulais faire en une commande. J'avais essayé
$ cp {ls -tu | tail -n 2} copy_dir/
sans connaître la syntaxe exacte à utiliser, qui n'a pas fonctionné bien évidemment.
Remerciement.
Pour moi, c'est [résolu].
Je laisse quand même la porte ouverte, au cas où.
Dernière modification par wrx (Le 15/07/2011, à 12:18)
Hors ligne