Compresser chaque sous-répertoires en archive
Résolu/Fermé
Sivenruot
Messages postés
8
Date d'inscription
dimanche 29 juin 2014
Statut
Membre
Dernière intervention
17 août 2014
-
1 août 2014 à 23:57
Sivenruot Messages postés 8 Date d'inscription dimanche 29 juin 2014 Statut Membre Dernière intervention 17 août 2014 - 4 août 2014 à 19:31
Sivenruot Messages postés 8 Date d'inscription dimanche 29 juin 2014 Statut Membre Dernière intervention 17 août 2014 - 4 août 2014 à 19:31
A voir également:
- Le fichier à télécharger est une archive compressée. parmi les fichiers que contient cette archive : quel est le fichier avec le taux de compression le plus élevé ? quel est le fichier dont la taille a le plus diminué ?
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
- Ouvrir fichier .bin - Guide
4 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
2 août 2014 à 09:24
2 août 2014 à 09:24
Salut,
Entendons-nous bien, quand tu parles d'arborescence à 3 niveau tu parles de sous répertoires comme dans :
ou dans :
Entendons-nous bien, quand tu parles d'arborescence à 3 niveau tu parles de sous répertoires comme dans :
Base_A:
|-- Base_A
| |-- rep1
| |-- rep2
| |-- rep3
| '-- rep4
ou dans :
Base_B:
|-- Base_B
|-- rep1
| |-- repa
| | |-- rep_x
| | |-- rep_y
| | '-- rep_z
| '-- repb
| |-- rep_x
| |-- rep_y
| | |-- sousf
| | '-- sousg
| '-- rep_z
'-- rep2
|-- repa
| |-- rep_x
| |-- rep_y
| '-- rep_z
'-- repb
|-- rep_x
|-- rep_y
'-- rep_z
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
Modifié par jisisv le 2/08/2014 à 10:08
Modifié par jisisv le 2/08/2014 à 10:08
Tu pourrais t'inspirer de ceci pour déterminer les répertoires ayant un certain niveau de profondeur, et utiliser la sortie pour effectuer les archivages selon tes besoins.
Gates gave ^W sold you the windows.
GNU gave us the whole house.(Alexandrin)
#! /bin/bash function usage { echo "Usage $(basename $0) rootdir level " >&2 } # echo $# if [ $# -ne 2 ]; then usage $0; exit 0; fi ROOTDIR=$1 if [ ! -d $ROOTDIR ] ; then echo "$ROOTDIR is not a directory" >&2 exit 1 fi shift LEVEL=$1 re='^[0-9]+$' if ! [[ $LEVEL =~ $re ]] ; then echo "$LEVEL is not numeric" >&2 usage $0 exit 1 fi if [ ${LEVEL} -eq 0 ] ; then LEVEL=1 fi testpath="" for cnt in $( seq 1 ${LEVEL} ) ; do testpath="${testpath}.*\/" done find ${ROOTDIR} -maxdepth ${LEVEL} -type d | egrep ${testpath}
Gates gave ^W sold you the windows.
GNU gave us the whole house.(Alexandrin)
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
2 août 2014 à 09:45
2 août 2014 à 09:45
Salut,
Euh...
Euh...
find rep/ -maxdepth 3 -type d -exec...devrait faire le boulot normalement sans sortir la grosse artillerie, non ? ;-\
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
2 août 2014 à 10:18
2 août 2014 à 10:18
Tant qu'on y est, faisons les choses proprement...
Sivenruot
Messages postés
8
Date d'inscription
dimanche 29 juin 2014
Statut
Membre
Dernière intervention
17 août 2014
2 août 2014 à 20:56
2 août 2014 à 20:56
Salut à tous et merci pour vos réponses détaillées.
Mon arborescence ressemble à ça :
Noms_Base
:
Dossier_A
|
|
>Alexis
>Alexandre
>etc...
Dossier_B
|
|
>Benjamin
>Bob
>Ben
Le but étant d'obtenir les archives des noms séparément. Pour ce qui est du zip, puisque les fichiers sont destiné à l'exportation et que ce format est un peu plus connus que le tar, j'ai pensé que c'était peu être mieux. Je me demande si winrar, où 7zip gèrent le format tar ?
Je vais tenter ta commande du find des que je retrouve mon PC. Et je vous tiens au jus ;-)
Encore merci pour votre aide précieuse !
Mon arborescence ressemble à ça :
Noms_Base
:
Dossier_A
|
|
>Alexis
>Alexandre
>etc...
Dossier_B
|
|
>Benjamin
>Bob
>Ben
Le but étant d'obtenir les archives des noms séparément. Pour ce qui est du zip, puisque les fichiers sont destiné à l'exportation et que ce format est un peu plus connus que le tar, j'ai pensé que c'était peu être mieux. Je me demande si winrar, où 7zip gèrent le format tar ?
Je vais tenter ta commande du find des que je retrouve mon PC. Et je vous tiens au jus ;-)
Encore merci pour votre aide précieuse !
Sivenruot
Messages postés
8
Date d'inscription
dimanche 29 juin 2014
Statut
Membre
Dernière intervention
17 août 2014
4 août 2014 à 19:31
4 août 2014 à 19:31
Alors, j'ai fini par prendre le script de jslv et le modifier.
Tout a fonctionner correctement !
Pour les curieux :
Merci a tous pour votre aide ;)
Tout a fonctionner correctement !
Pour les curieux :
#!/bin/bash
function usage
{
echo "Usage $(basename $0) DirBASE RERCURSION OUTPUTfullway PASSWORD" >&2
}
#echo $#
if [ $# -ne 4 ]; then
usage $0;
exit 0;
fi
ROOTDIR=$1
if [ ! -d $ROOTDIR ] ; then
echo "$ROOTDIR is not a directory" >&2
exit 1
fi
shift
LEVEL=$1
re='^[0-9]+$'
if ! [[ $LEVEL =~ $re ]] ; then
echo "$LEVEL is not numeric" >&2
usage $0
exit 1
fi
if [ ${LEVEL} -eq 0 ] ; then
LEVEL=1
fi
testpath=""
for cnt in $( seq 1 ${LEVEL} ) ; do
testpath="${testpath}.*\/"
OUTPUT=$2
PASSWORD=$3
done
find ${ROOTDIR} -maxdepth ${LEVEL} -mindepth ${LEVEL} -type d -exec 7z a -t7z -m0=lzma -mfb=64 -md=32m -ms=on -mx=9 -mhe=on -p${PASSWORD} ${OUTPUT}{}.7z {} \;
cd ${OUTPUT} \;
find -name *.7z -exec mv {} ${OUTPUT} \;
rm -dir -f */ \;
Merci a tous pour votre aide ;)
2 août 2014 à 10:08
ou
un, deux, trois, et je sors
?
ok, je sors!
XD
2 août 2014 à 10:12
PS. À 3 tu peux rentrer : 1... 2... ;-)