logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 18-10-2019 09:36:15

shushine
Membre
Inscription : 18-10-2019

Copie de fichier avec création d'arborescence

Hello smile
Je possède une liste de fichiers à traiter. (en .txt)
OU dans le document, nous avons juste des noms de dossier avec leurs arborescences de type:

/home/dossier1/toto
/home/dossier1/toto2
/home/dossier2/toto
/home/dossier2/toto2


Etc...

En fait, j'aimerais qu'à partir de cette liste faire une copie vers un point de montage en recréant l'arborescence exacte

Exemple:
/mnt/home/dossier1/toto
/mnt/home/dossier1/toto2
/mnt/home/dossier2/toto
/mnt/home/dossier2/toto2


Etc...

Est ce possible ?

Merci par avance pour votre aide !

Dernière modification par shushine (18-10-2019 09:36:51)

Hors ligne

#2 18-10-2019 09:47:49

Debian Alain
Membre
Lieu : Bretagne
Distrib. : sid (unstable) / bullseye (stable)
Noyau : Linux sid 6.4.0-3-amd64
(G)UI : Gnome X.org (X11) / GDM3
Inscription : 11-03-2017
Site Web

Re : Copie de fichier avec création d'arborescence

tu as  essayé la commande

cp <dossier départ> <dossier destination>


pour copier d'un dossier à un autre ?

aussi

rm -rf /dossier/


pour effacer un dossier (attention , te loupe pas , commande très dangeureuse et très puissante)

Hors ligne

#3 18-10-2019 09:53:09

shushine
Membre
Inscription : 18-10-2019

Re : Copie de fichier avec création d'arborescence

Hello
Un grand merci pour ta réponse !
Mais oui j'ai testé ^^

En faite mon problème c'est que dans la liste de dossier que j'ai à copier tout n'est pas à copier justement sad

Exemple:

Dans mon arboresrence j'ai:

/home/dossier1/toto
/home/dossier2/toto
/home/dossier3/toto

Je souhaiterais copier dossier 1 et 2 mais sans copier dossier 3

c'est pour ça que j'aimerais copier uniquement les dossiers qui font partie de ma liste.txt tout en créant les répertoires qui n'existent pas dans /mnt

Hors ligne

#4 18-10-2019 11:51:51

Debian Alain
Membre
Lieu : Bretagne
Distrib. : sid (unstable) / bullseye (stable)
Noyau : Linux sid 6.4.0-3-amd64
(G)UI : Gnome X.org (X11) / GDM3
Inscription : 11-03-2017
Site Web

Re : Copie de fichier avec création d'arborescence

arf ! à part le faire à la main voire ...

créer un petit script pour automatiser la démarche si çà doit être répétitif ???

Hors ligne

#5 18-10-2019 12:06:21

shushine
Membre
Inscription : 18-10-2019

Re : Copie de fichier avec création d'arborescence

J'ai tenté de faire ça avec le script suivant:


for i in $(cat liste.txt)
do
if [ -e "$i" ]
then mkdir -p $i /mnt
fi
done;



 



J'ai tenté de créé d'abord les répertoires pour ensuite les copier mais sa ne passe pas sad
et je débute en shell ^^'

Dernière modification par shushine (18-10-2019 12:07:21)

Hors ligne

#6 18-10-2019 18:22:46

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : Copie de fichier avec création d'arborescence

Suggestion de correction :

for i in $(cat liste.txt)
do
if [ -d "$i" ]
then mkdir -p "/mnt/$i"
fi
done;

Dernière modification par otyugh (18-10-2019 18:22:56)


virtue_signaling.pngpalestine.png

Hors ligne

#7 19-10-2019 07:26:25

Anonyme
Invité

Re : Copie de fichier avec création d'arborescence

Bonjour,

Je suis en train de me faire un script dans le même style.
Tu peux piocher dedans si tu veux. J'utilise rsync et progress.
Je fais une sauvegarde de ce qui m'interresse que je met manuellement dans le script le temps venu.
Je sauvegarde en doublon sur deux diques durs.
Je crée les dossiers de l'arborescence et sauvegarde les fichiers ou dossiers qui m'interresse en les mettant dans celle-ci.
Je pense que tu comprendra aisément le truc.

apt install rsync parallel




Script Sauvegarde :


#!/bin/bash

DIR1=/run/media/$USER/230GO/CONFIGURATION/$(date +%d-%m-%y)/$(date +%H:%M)/$USER
DIR2=/run/media/$USER/300GO/CONFIGURATION/$(date +%d-%m-%y)/$(date +%H:%M)/$USER


DIR1_2=/run/media/$USER/230GO/CONFIGURATION/$(date +%d-%m-%y)/$(date +%H:%M)/RACINE
DIR2_2=/run/media/$USER/300GO/CONFIGURATION/$(date +%d-%m-%y)/$(date +%H:%M)/RACINE

ETC="$DIR1_2/etc"
ETC_BIS="$DIR2_2/etc"

XDG="$DIR1_2/etc/xdg"
XDG_BIS="$DIR2_2/etc/xdg"

LOCAL="$DIR1_2/usr/local"
LOCAL_BIS="$DIR2_2/usr/local"

LOG="$DIR1_2/var/log"
LOG_BIS="$DIR2_2/var/log"

PACMAN="$DIR1_2/var/cache/pacman"
PACMAN_BIS="$DIR2_2/var/cache/pacman"

X11="$DIR1_2/etc/X11"
X11_BIS="$DIR2_2/etc/X11"

files="
$HOME/.nvidia-settings-rc
$HOME/.Xresources
$HOME/.wavbreaker
$HOME/.dialogrc
$HOME/.conkyrc
$HOME/.bashrc
$HOME/.abcde.conf
$HOME/monaco.ttf
$HOME/Ubuntu-Title.ttf
"

# Création Du Dossier De Sauvegarde
if [ ! -d "$DIR1" ] && [ ! -d "$DIR2" ]; then
    echo "La Structure N'existe Pas !!!. Création ... !"
mkdir -p "$DIR1" "$DIR2"
else
    echo "La Structure Existe."

fi



# Création De RACINE
if [ ! -d "$DIR1_2" ] && [ ! -d "$DIR2_2" ]; then
    echo "RACINE N'existe Pas !!!. Création ... !"
mkdir -p "$DIR1_2" "$DIR2_2"
mkdir -p "$ETC" "$ETC_BIS"
mkdir -p "$XDG" "$XDG_BIS"
mkdir -p "$LOCAL" "$LOCAL_BIS"
mkdir -p "$LOG" "$LOG_BIS"
mkdir -p "$PACMAN" "$PACMAN_BIS"
mkdir -p "$X11" "$X11_BIS"
else
    echo "RACINE Existe."

 fi
 
 


# Sauvegarde Des Fichiers
echo "Sauvegarde Des Fichiers."

for f in $files; do
    echo -n "Copie Du Fichier $(basename $f)"
    if [ ! -f "$f" ]; then
        echo "            [ False ]"
    else
#        cp "$f" "$DIR/$jour/$heure"/home/$USER
#    echo "                [ OK ]"
#        parallel cp -f "$f" ::: "$DIR1" "$DIR2"
parallel --progress rsync -ah --progress  "$f" ::: "$DIR1" "$DIR2"
   
    fi
done


parallel --progress rsync -ah --progress $HOME/.icons ::: "$DIR1" "$DIR2"
parallel --progress rsync -ah --progress $HOME/.themes ::: "$DIR1" "$DIR2"
parallel --progress rsync -ah --progress $HOME/.config ::: "$DIR1" "$DIR2"
parallel --progress rsync -ah --progress $HOME/.conky ::: "$DIR1" "$DIR2"
parallel --progress rsync -ah --progress $HOME/.fonts ::: "$DIR1" "$DIR2"
parallel --progress rsync -ah --progress $HOME/.mozilla ::: "$DIR1" "$DIR2"
parallel --progress rsync -ah --progress $HOME/.thunderbird ::: "$DIR1" "$DIR2"


parallel --progress rsync -ah --progress $HOME/Téléchargements ::: "$DIR1" "$DIR2"
parallel --progress rsync -ah --progress $HOME/Musique ::: "$DIR1" "$DIR2"
parallel --progress rsync -ah --progress $HOME/Documents ::: "$DIR1" "$DIR2"
parallel --progress rsync -ah --progress $HOME/Desktop ::: "$DIR1" "$DIR2"
parallel --progress rsync -ah --progress $HOME/Scripts ::: "$DIR1" "$DIR2"
parallel --progress rsync -ah --progress $HOME/Base_Vinyl ::: "$DIR1" "$DIR2"
parallel --progress rsync -ah --progress $HOME/Images ::: "$DIR1" "$DIR2"
parallel --progress rsync -ah --progress $HOME/Radios ::: "$DIR1" "$DIR2"
parallel --progress rsync -ah --progress $HOME/Record ::: "$DIR1" "$DIR2"
parallel --progress rsync -ah --progress $HOME/scrapbee ::: "$DIR1" "$DIR2"
parallel --progress rsync -ah --progress $HOME/Vidéos ::: "$DIR1" "$DIR2"




parallel --progress rsync -ah --progress /etc/modprobe.d ::: "$ETC" "$ETC_BIS"
parallel --progress rsync -ah --progress /etc/pam.d ::: "$ETC" "$ETC_BIS"
parallel --progress rsync -ah --progress /etc/modules-load.d ::: "$ETC" "$ETC_BIS"
parallel --progress rsync -ah --progress /etc/lightdm ::: "$ETC" "$ETC_BIS"
parallel --progress rsync -ah --progress /etc/environment ::: "$ETC" "$ETC_BIS"
parallel --progress rsync -ah --progress /etc/fstab ::: "$ETC" "$ETC_BIS"
parallel --progress rsync -ah --progress /etc/group ::: "$ETC" "$ETC_BIS"
parallel --progress rsync -ah --progress /etc/locale.conf ::: "$ETC" "$ETC_BIS"
parallel --progress rsync -ah --progress /etc/pacman.conf ::: "$ETC" "$ETC_BIS"
parallel --progress rsync -ah --progress /etc/vconsole.conf ::: "$ETC" "$ETC_BIS"
parallel --progress rsync -ah --progress /etc/makepkg.conf ::: "$ETC" "$ETC_BIS"
parallel --progress rsync -ah --progress /etc/X11/xorg.conf.d ::: "$X11" "$X11_BIS"
parallel --progress rsync -ah --progress /etc/xdg/autostart ::: "$XDG" "$XDG_BIS"


parallel --progress rsync -ah --progress /usr/local/bin ::: "$LOCAL" "$LOCAL_BIS"
parallel --progress rsync -ah --progress /var/log/pacman.log ::: "$LOG" "$LOG_BIS"
parallel --progress rsync -ah --progress /var/cache/pacman/pkg ::: "$PACMAN" "$PACMAN_BIS"

echo "Sauvegarde terminée."
 

Dernière modification par Anonyme (19-10-2019 07:40:56)

Pied de page des forums