Erstellen Sie rekursiv eine Kopie aller .acignore->.gitignore an Ort und Stelle

Erstellen Sie rekursiv eine Kopie aller .acignore->.gitignore an Ort und Stelle

Ich habe die folgende Dateistruktur als Beispiel

    c
    -Git
     -GitBranchTest
         .acignore
         [lots more files]
      -subfolder
         .acignore
         [lots more files]

Ich versuche, eine Kopie aller .acignore-Dateien zu erstellen und sie in .gitignore umzubenennen. Wenn ich fertig bin, sollte es so aussehen

    c
    -Git
     -GitBranchTest
         .acignore
         .gitignore
         [lots more files]
      -subfolder
         .acignore  
         .gitignore  
         [lots more files]

Was ich versucht habe und der Fehler, den ich bekommen habe:

Was ich versucht habe

Ich hoffe, das ist klar genug. Bitte helfen Sie.

Antwort1

Das hier sollte funktionieren:

find ./ -name '.acignore' | sed 's/.acignore//g' | xargs -I {} cp {}.acignore {}.gitignore

Es ist "./", wenn Sie sich im Verzeichnis "c" befinden. Wenn Sie sich darüber befinden, ist es "./c".

Antwort2

Mein Versuch funktioniert, ist aber sehr ausführlich :)

for i in  $(find /c/Git/GitBranchTest -name ".*" -print | grep acignore);do         
        from=$i
        replacement=.gitignore
        to=${from/.acignore/$replacement}
       echo "cp $from $to" | sh
done

verwandte Informationen