IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes POSIX Discussion :

Problème tar find


Sujet :

Shell et commandes POSIX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2005
    Messages
    1 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 364
    Par défaut Problème tar find
    Bonjour,

    Je souhaite archiver une partie des fichiers d'une arborescence de données.
    Dans cette arborescence j'ai des fichiers qui contiennent des espaces dans les noms des fichiers, mon code n'arrive pas à les traiter correctement.
    J'utilise la commande ci-dessous :
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find /users/A45890/ \( -name '*.txt' -o  -name '*.csv' \) | xargs  tar -cvf /users/A45890/arch5.tar
    Sortie de la commande!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    a /users/A45890/test
    a /users/A45890/test/test.txt 0 blocs.
    tar : ext.txt: Un fichier ou un répertoire du chemin d'accès n'existe pas.
    a /users/A45890/test_ext.txt 0 blocs.
    $ uxsar50:/users/A45890/mig_users>
    Par contre la commande :
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      tar -cvf /users/A45890/arch5.tar *.txt
    traite correctement les noms de fichiers avec des espaces!!! Mais cette commande ne cherche pas les fichiers dans les sous répertoires.

    Merci de votre aide.

  2. #2
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Sous quel Unix ?

  3. #3
    Membre Expert

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2005
    Messages
    1 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 364
    Par défaut
    Merci

    Je suis sous AIX.

  4. #4
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    déjà il faut faire tar uf .... pour pas l'écraser à chaque fichier.

    quand aux fichiers avec espaces tu devrais utiliser les quotations forcés et plutot qu'xargs utiliser find correctement...

    genre :

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    find /tmp/ -name "*.test" -exec tar uf /tmp/toto.tar "{}" \;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    $ telnet baccus
    Trying 192.168.0.20...
    Connected to baccus.
    Escape character is '^]'.
     
     
    telnet (baccus)
     
    AIX version 5
    (C) Copyrights by IBM and by others 1982, 2000.
    Connexion : root
    Mot de passe de root : 
    *******************************************************************************
    *                                                                             *
    *                                                                             *
    *  Welcome to AIX Version 5.1!                                                *
    *                                                                             *
    *                                                                             *
    *  Please see the README file in /usr/lpp/bos for information pertinent to    *
    *  this release of the AIX Operating System.                                  *
    *                                                                             *
    *                                                                             *
    *******************************************************************************
    Dernière connexion : ven  4 mai 19:31:38 CDT 2012 sur /dev/tty0
     
    # 
    # cd /tmp
    # mkdir toto
    # mkdir toto/tata
    # echo toto > toto/a
    # echo toto > toto/"a b"
    # echo titi > toto/tata/"a cc"
    # set -o vi
    # echo titi > toto/tata/"a bc"
    # 
    # echo $(date +%Y%m%d) > f
    # tar cf test.tar f
    # find toto/ -type f -name "*" -exec tar uf /tmp/test.tar {} \;
    # tar tf /tmp/test.tar
    f
    toto/tata/a cc
    toto/tata/a bc
    toto/a
    toto/a b
    # exit
    Connection closed by foreign host.
     
    $
    en fait y'a pas besoin de la quote " autour des {}
    ça aura été l'occasion de ressortir ma bonne vielle rs6000...

Discussions similaires

  1. Problème avec "find"
    Par tnarol dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 18/04/2008, 11h32
  2. Problème de FIND
    Par french_aspi dans le forum MATLAB
    Réponses: 5
    Dernier message: 31/03/2008, 04h22
  3. Problème méthode find
    Par tazmania dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/06/2007, 15h37
  4. VBA-E Problème méthode .find
    Par popo68 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/01/2007, 10h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo