GNU/Linux >> Znalost Linux >  >> Linux

Zkopírujte a přepište soubor ve skriptu shellu

Použijte

cp -fr /source/file /destination

to by pravděpodobně mělo problém vyřešit.


Tato otázka již byla diskutována, ale můžete napsat malý skript, jako je tento:

#!/bin/bash
if [ ! -d "$2" ]; then
  mkdir -p "$2"
fi
cp -R "$1" "$2"

Trochu vysvětlit tento skript

  1. #!/bin/bash :říká počítači, aby použil bash tlumočník.

  2. if [ ! -d "$2" ]; then :Pokud druhá proměnná, kterou jste zadali, již neexistuje...

  3. mkdir -p "$2" :vytvořte tento adresář, včetně všech nadřazených adresářů dodaných v cestě.

    Spuštěn mkdir -p one/two/three udělá:

    $ mkdir -p one/two/three
    $ tree one
    one/
    └── two
        └── three
    

    Pokud nezadáte -p pak se zobrazí chyba, pokud adresáře one a two neexistují:

    $ mkdir one/two/three
    mkdir: cannot create directory ‘one/two/three’: No such file or directory
    
  4. fi :Zavře if prohlášení.

  5. cp -R "$1" "$2" :zkopíruje soubory z první proměnné, kterou jste zadali, do adresáře druhé proměnné, kterou jste zadali.

    Pokud jste tedy spustili script.sh mars pluto , mars by byla první proměnná ($1 ) a pluto by byla druhá proměnná ($2 ).

    -R příznak znamená, že to dělá rekurzivně, takže cp příkaz projde všem soubory a složky z vaší první proměnné a zkopírujte je do adresáře vaší druhé proměnné.


Linux
  1. Proč je proměnná viditelná v podslupce?

  2. Expanze proměnné Shell a účinek globusu a rozdělení na něj?

  3. Shell skript pro přesun nejstarších souborů?

  1. Jak vytvořit dočasný soubor ve skriptu Shell?

  2. konvence pojmenování pro shell skript a makefile

  3. Shell - Zápis proměnného obsahu do souboru

  1. přesunout pouze v případě, že soubor existuje ve skriptu shellu

  2. Může být soubor .sh malware?

  3. Najít soubor odpovídající určitému vzoru a dát tomuto názvu souboru jako hodnotu proměnné ve skriptu shellu?