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 GNU Discussion :

Déplacer uniquement des fichiers d'un répertoire vers un autre sans déplacer les sous-répertoires


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Maintenance Prédictive
    Inscrit en
    Mars 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Maintenance Prédictive
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2017
    Messages : 39
    Points : 25
    Points
    25
    Par défaut Déplacer uniquement des fichiers d'un répertoire vers un autre sans déplacer les sous-répertoires
    Bonjour,

    Afin de nettoyer un dataset sur un cluster sous OS Ubuntu je dois déplacer tous les fichiers *.png qui se trouvent dans le répertoire :

    /home_nfs/piussic/datasets-opt/diseaseEq41pct/training/

    vers le répertoire:
    /home_nfs/piussic/datasets-opt/diseaseEq41pct/training/temp/

    en vue de supprimer le répertoire complet temp/ et tous les fichiers *.png qu'il contiendra proprement, car j'ai essayé la suppression de fichiers directement mais récursivement les commands bash que j'ai essayées suppriment les fichiers *.png qu'il y a dans tous les sous-répertoires enfants c'est-à-dire :
    /home_nfs/piussic/datasets-opt/diseaseEq41pct/training/Normal/
    et
    /home_nfs/piussic/datasets-opt/diseaseEq41pct/training/Disease/

    ce que je ne veux pas.

    je me suis donc rabattu sur le déplacement et ensuite la suppression d'un répertoire temporaire appelé temp que j'ai essayé avec les commandes suivants :
    1°)
    qui me renvoie l'erreur "-bash: /bin/mv: Liste d'arguments trop longue"
    ce qui est normal car * représente à peu près 40.000 fichiers.

    2°) après lecture sur les forums j'ai trouvé cette commande que j'ai lancée

    find . -name 'Normal20*' -exec mv {} /tmp/ \;

    car les 40000 fichiers ont la particularité d'aussi commencer tous par "Normal20..."

    mais rien ne se passe.

    Si quelqu'un pouvait m'aider ou avait une autre idée.

  2. #2
    Membre éprouvé Avatar de balkany
    Homme Profil pro
    Touriste
    Inscrit en
    Juillet 2017
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Touriste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 346
    Points : 977
    Points
    977
    Par défaut
    La suppression ne sera récursive que si tu le demandes, donc normalement il te suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rm /home_nfs/piussic/datasets-opt/diseaseEq41pct/training/*.png
    et ça ne supprimera les fichiers que dans ce répertoire-là.
    Et avec un peu de chance, la limitation que tu as au nombre de fichiers sur cp ou mv n'existe pas pour rm.

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 387
    Points
    19 387
    Par défaut
    Citation Envoyé par balkany Voir le message
    La suppression ne sera récursive que si tu le demandes
    tout à fait.
    Et avec un peu de chance, la limitation que tu as au nombre de fichiers sur cp ou mv n'existe pas pour rm.
    la limite est liée au nombre de caractères sur la "ligne de commande".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf '%s\n' "$repSource"/Normal20*.png | xargs -n 100 rm
    passe les fichiers par centaines à rm via xargs.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Membre éprouvé Avatar de balkany
    Homme Profil pro
    Touriste
    Inscrit en
    Juillet 2017
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Touriste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 346
    Points : 977
    Points
    977
    Par défaut
    Ah oui, c'est vrai, rien de spécifique à cp ou mv là-dedans.
    Voir par exemple https://serverfault.com/questions/56...es/56078#56078

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Maintenance Prédictive
    Inscrit en
    Mars 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Maintenance Prédictive
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2017
    Messages : 39
    Points : 25
    Points
    25
    Par défaut Réponse à la solution de Balkany
    Citation Envoyé par balkany Voir le message
    La suppression ne sera récursive que si tu le demandes, donc normalement il te suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rm /home_nfs/piussic/datasets-opt/diseaseEq41pct/training/*.png
    et ça ne supprimera les fichiers que dans ce répertoire-là.
    Et avec un peu de chance, la limitation que tu as au nombre de fichiers sur cp ou mv n'existe pas pour rm.
    Bonjour,

    merci. Oui effectivement la suppression n'est pas récursive et j'ai testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rm /home_nfs/piussic/datasets-opt/artery-lca-rcaEq/training/suptest/*.png
    , cela fonctionne bien et les fichiers *.png des répertoires fils de celui contenant les fichiers à supprimer sont bien intacts. Par contre je n'ai pas eu de limitation sur le nombre de caractères de la ligne de commande, comme le signale N_BaH (dont je dois encore tester la solution) alors que la commande que j'ai testée est plus longue que la première qui me renvoyait le message d'erreur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/06/2016, 03h54
  2. [XL-2010] rech commande pour déplacer des fichiers dans un liste vers un autre dossier
    Par Mistral13200 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/12/2015, 15h50
  3. [XL-2013] rech commande pour déplacer des fichiers dans un liste vers un autre dossier
    Par cmoithiery dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 03/11/2015, 12h18
  4. [XL-2010] VBA : Couper/ Coller des fichiers d'un dossier vers un autre
    Par Glnmchl dans le forum Excel
    Réponses: 4
    Dernier message: 22/04/2015, 16h20
  5. Deplacer des fichiers d'un serveur vers un autre à heure fixe
    Par titan_33 dans le forum Windows Serveur
    Réponses: 7
    Dernier message: 29/10/2008, 22h44

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