Deplavement de fichier

qqn peux me dire comme aller dans un repertoire x ou y et verifier si des fichiers y sont bien présents pour les envoyer dans d'autres repertoires, c mes premieres shell alors soyez gentil lol

3 réponses

  1. Modérateur
    Salut,

    Pour aller dans un répertoire tu peux utiliser la commande cd

    ChangeDirectory
    cd /chemin/vers/autre_rep
    Mais pour ton problème tu peux utiliser la commande find.
    find /chemin/vers/x -name 'y' -exec cp {} /chemin/vers/autre_rep \;
    lami20j
    0
    1. Contributeur
      Salut vous deux.

      Autres commendes de bases utils en shell : mv pour déplacer un fichier, cp pour le copier, ls pour avoir la liste des fichier d'un répertoire, rm pour effacer un fichier, mkdir pour crée un répertoire et rmdir pour l'effacer, et man pour le mode d'emplois de toutes ces commendes (
      man cp
      par exemple). Tant que tu n'est pas root, tu peux tout tester sans avoir peur de mettre le système en l'air.

      Bonne décourert de la banquise jojo

      Renisaac
      0
      1. Modérateur
        Avec quelques commandes internes
        johan@johan:~/temp/brol$ touch file01 file02 file03 file05
        johan@johan:~/temp/brol$ cat testfiles.sh
        #!/bin/sh
        THEFILES='file01 file02 file03 file04 file05'
        THEDIR='.'
        [ $# -gt 0 ] && THEDIR=$1
        [ ! -d "$THEDIR" ] && {
                        echo "$THEDIR is not a directory, usage $0 directory" ; exit
                        }
        for file in $THEFILES; do
                if [ -f "$THEDIR/$file" ]; then
                        echo "$file EXISTS"
                else
                        echo "$file does NOT exist"
                fi
        done
        johan@johan:~/temp/brol$ ./testfiles.sh
        file01 EXISTS
        file02 EXISTS
        file03 EXISTS
        file04 does NOT exist
        file05 EXISTS
        johan@johan:~/temp/brol$ cd ..
        johan@johan:~/temp$ ./brol/testfiles.sh
        file01 does NOT exist
        file02 does NOT exist
        file03 does NOT exist
        file04 does NOT exist
        file05 does NOT exist
        johan@johan:~/temp$ ./brol/testfiles.sh brol/
        file01 EXISTS
        file02 EXISTS
        file03 EXISTS
        file04 does NOT exist
        file05 EXISTS
        
        johan@johan:~/temp/brol$ file /usr/bin/[
        /usr/bin/[: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), stripped
        


        man bash
        éventuellement man [; man test
        ([ est une commande interne bash, souvent répliqueée en commande externe pour comatibilité)
        0