Une commande pour copier * dossier sauf 1

Bonjour,
je cherche une commande pour copier tout le contenu d’un dossier sauf un fichier (ou répertoire).

J’ai essayer : find ./* ! -name ‘mon_fichier’ -exec "mv -v * /chemin/";mais j’ai une erreur concernant -exec que la page de man ne me permet pas de résoudre.

.

Ou bien par exemple :
rsync -a --exclude=fichier1 --exclude=repertoire1 /source/* /destination/

[quote]mais j’ai une erreur concernant -exec que la page de man ne me permet pas de résoudre.[/quote]peut être le ; final échappé: ;

find . ! -name ‘mon_fichier’ -exec mv -v {} /chemin/ \;devrait aller…

[quote=“tukuyomi”]

find . ! -name ‘mon_fichier’ -exec cp -v {} /chemin/ \;devrait aller…[/quote]Ça marche avec cette commande pour les fichiers.

Je cherche maintenant comment faire pour les dossiers. En effet, mon objectif c’est de faire une sauvegarde de mon /home avec cette commande mais de ne pas copier le dossier videos car il est très gros.

tu vas être emmerdé avec cp si tu copie une arborescence.

par exemple si cp essaye de copier un fichier /home/user/dossier1/dossier2/fichier alors que sur la destination dossier1 n’a pas encore été créé. il va pas vouloir.

pour des sauvegardes oriente toi plutôt vers rsync, ou des outils comme backup-manager. les deux gèrent les exclusions de dossiers)

[quote=“cepcasa”]Ou bien par exemple :
rsync -a --exclude=fichier1 --exclude=repertoire1 /source/* /destination/[/quote]+1 tout simplement

[quote=“ursus”][quote=“cepcasa”]Ou bien par exemple :
rsync -a --exclude=fichier1 --exclude=repertoire1 /source/* /destination/[/quote]+1 tout simplement[/quote]
Merci pour votre aide, je ne connais pas rsync mais ça à l’air bien pour ce que je veux faire.

J’ai fait un petit test[code]~$ ls -l test/
total 8
drwxr-xr-x 2 pierre pierre 4096 jan 12 18:01 coucou
drwxr-xr-x 2 pierre pierre 4096 jan 12 18:00 salut

[/code]~$ su -c "rsync -a --exclude=salut /home/pierre/test/ /media/sda1/pierre/" Mot de passe : rsync: chown "/media/sda1/pierre/." failed: Operation not permitted (1) rsync: chown "/media/sda1/pierre/coucou" failed: Operation not permitted (1) rsync: chown "/media/sda1/pierre/coucou/.test1.8Cjc7x" failed: Operation not permitted (1) rsync error: some files could not be transferred (code 23) at main.c(1058) [sender=3.0.3] Erreur de permissions sur mon disque durs externe. Le dossier est quand même copié mais les permissions ne sont pas sauvegarder. /media/sda1/pierre$ ls -l total 16 drwxr-xr-x 2 root root 16384 jan 12 18:01 coucou Il faut que je modifie les permissions sur mon disque dur externe non, ce n’est pas normal que ça passe en root ?

pour les permissions et les erreurs, ça vient peut-être du format de ton disque, c’est quoi (ntfs, fat, ext) ?

[quote=“sidell”]Il faut que je modifie les permissions sur mon disque dur externe non, ce n’est pas normal que ça passe en root ?[/quote]c’est peut-être parce que tu as lancé rsync en root

pourtant le -a (archive) est censé conserver les permissions.

[quote=“thomas.leclerc”]pourtant le -a (archive) est censé conserver les permissions.[/quote]… si le système de fichier les gère

J’ai lancé le rsync en root parce qu’il ne voulait pas écrire sur le disque en simple utilistateur.
Le système de fichiers c’est FAT32.

Mais je pense que le problème vient de mon disque où les fichiers appartiennent au root, est-ce que c’est une bonne idée de lancer un chown -R ?

Pour info : $ mkdir test mkdir: ne peut créer le répertoire `test': Permission non accordée pierre@idjagiedas:/media/sda1$ su -c "mkdir test" && ls -l | grep test Mot de passe : drwxr-xr-x 2 root root 16384 jan 12 22:34 test Ce comportement n’est pas normal non ?

[quote=“sidell”]J’ai lancé le rsync en root parce qu’il ne voulait pas écrire sur le disque en simple utilistateur.
Le système de fichiers c’est FAT32.

Mais je pense que le problème vient de mon disque où les fichiers appartiennent au root, est-ce que c’est une bonne idée de lancer un chown -R ?[/quote]je crois bien que le fat32 ne gère pas les droits, donc les chown ou chgrp ne feront rien.
essaye rsync -rlt ... pour éviter les warnings/erreurs

[quote=“sidell”]Pour info :
Code:
$ mkdir test
mkdir: ne peut créer le répertoire `test’: Permission non accordée
pierre@idjagiedas:/media/sda1$ su -c “mkdir test” && ls -l | grep test
Mot de passe :
drwxr-xr-x 2 root root 16384 jan 12 22:34 test
Ce comportement n’est pas normal non ?[/quote]ça dépend, comment montes-tu le disque externe ?

Salut,

il suffit de faire ça :

% shopt -s extglob % cp -a !(glob_exclut) /path/to/destination

% help shopt % shopt -s

Je monte mon disque en root avec # mount /dev/sda1 /media/sda1/

Ça marche avec la deuxième commande (est-ce que je perd les permissions ?)

Pour pouvoir monter/démonter (et écrire sur) le disque sans les droits d’administrateurs tu peux le monter avec l’option user: il y a des trucs automatiques qui font ça.
Sinon, peut-être que le plus simple c’est de le déclarer dans fstab/dev/sda /media/sda vfat user,noauto 0 0puis de le monter/démonter en utilisateur simple:$ mount /media/sda $ umount /media/sdaensuite, tu pourras écrire (et donc utiliser rsync) en utilisateur normal

[quote=“sidell”]Ça marche avec la deuxième commande (est-ce que je perd les permissions ?)[/quote]à mon sens oui puisque fat ne les gère pas.
Tu peux utiliser du ntfs sinon (si c’est pour des échanges windows)

C’est bizarre parce que avec ma clé usb qui est en FAT32, je n’ai pas de message d’erreur avec rsync.