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
-
#!/bin/bash
:říká počítači, aby použilbash
tlumočník. -
if [ ! -d "$2" ]; then
:Pokud druhá proměnná, kterou jste zadali, již neexistuje... -
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ářeone
atwo
neexistují:$ mkdir one/two/three mkdir: cannot create directory ‘one/two/three’: No such file or directory
-
fi
:Zavře if prohlášení. -
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
) apluto
by byla druhá proměnná ($2
).-R
příznak znamená, že to dělá rekurzivně, takžecp
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é.