Kopier *.js Filer Rekursivt Uden Overskrivning: Guide og Kommandoer

Hvordan kopieres alle *.js filer fra en kilde-mappe til en destinations-mappe rekursivt uden at overskrive eksisterende filer i destinations-mappen?

For at kopiere alle *.js filer fra en kilde-mappe til en destinations-mappe rekursivt uden at overskrive eksisterende filer i destinations-mappen, kan du bruge kommandoen `rsync -av --ignore-existing source_directory/ destination_directory/ --include='*.js' --include='*/' --exclude='*'` eller et Python-script, der går rekursivt gennem kilde-mappen og kopierer .js filer uden at overskrive eksisterende filer.

Sådan kopieres alle *.js filer fra en kilde-mappe til en destinations-mappe rekursivt uden at overskrive eksisterende filer i destinations-mappen

For at kopiere alle *.js filer fra en kilde-mappe til en destinations-mappe rekursivt uden at overskrive eksisterende filer i destinations-mappen, kan du bruge følgende trin:

  1. Åbn en terminal eller kommandoprompt.
  2. Brug kommandoen rsync med de rette flag og parametre. Her er et eksempel på en sådan kommando:
rsync -av --ignore-existing source_directory/ destination_directory/ --include='*.js' --include='*/' --exclude='*'

Forklaring af kommandoen:

  • -a: Archive mode, som bevarer symbolske links, enheder, attributter, tilladelser, ejerskab osv.
  • -v: Verbose mode, som giver detaljeret output.
  • --ignore-existing: Undgår at overskrive eksisterende filer i destinations-mappen.
  • source_directory/: Stien til kilde-mappen.
  • destination_directory/: Stien til destinations-mappen.
  • --include='*.js': Inkluderer alle .js filer.
  • --include='*/': Inkluderer alle mapper rekursivt.
  • --exclude='*': Ekskluderer alle andre filer.

Bemærk: Sørg for at erstatte source_directory og destination_directory med de faktiske stier til dine mapper.

Alternativt kan du bruge et Python-script til at opnå det samme:

import os
import shutil

def copy_js_files(src, dst):
    for root, dirs, files in os.walk(src):
        for file in files:
            if file.endswith('.js'):
                src_file = os.path.join(root, file)
                dst_file = os.path.join(dst, os.path.relpath(src_file, src))
                dst_dir = os.path.dirname(dst_file)
                if not os.path.exists(dst_dir):
                    os.makedirs(dst_dir)
                if not os.path.exists(dst_file):
                    shutil.copy2(src_file, dst_file)

source_directory = 'path/to/source_directory'
destination_directory = 'path/to/destination_directory'

copy_js_files(source_directory, destination_directory)

Forklaring af Python-scriptet:

  • Importerer nødvendige moduler: os og shutil.
  • Definerer funktionen copy_js_files, som går rekursivt gennem kilde-mappen.
  • Kopierer .js filer til destinations-mappen uden at overskrive eksisterende filer.
  • Bruger os.makedirs til at oprette nødvendige mapper i destinations-mappen.
  • Bruger shutil.copy2 til at kopiere filer med metadata.

Husk at erstatte path/to/source_directory og path/to/destination_directory med de faktiske stier til dine mapper.