Linuxový příkaz cp umožňuje kopírovat soubory a adresáře. Ve výchozím nastavení funguje pouze se souborem. Když se pokusíte zkopírovat adresář. Na terminálu se zobrazí níže uvedená chyba.
cp:-r neuvedeno; vynechání adresáře
Pojďme pochopit, proč se vám tato chyba v Linuxu zobrazuje, a najděte řešení.
Nejprve zopakujme cp:chyba vynechání adresáře
Zkopírujeme soubor ze souboru src_file.txt do složky /home/atechtown/dest_dir.
cp src_file.txt /home/atechtown/dest_dir
Pro soubory to funguje dobře.
Nyní spusťte příkaz pro adresář a uvidíme, co se stane. Zkopírujte adresář ze src_dir do desk_dir.
cp src_dir desk_dir cp: -r not specified; omitting directory 'src_dir'
Co je špatného na příkazu kopírování? Proč chybová zpráva cp vynechává adresář?
cp vynechává řešení chyby adresáře
cp:vynechání chyby adresáře říká, že adresáře se nekopírují, protože příkaz cp ve výchozím nastavení funguje pouze se soubory. Jednoduše použijte příkaz cp s -r nebo -R (rekurzivní) jako argument pro vyřešení chyby cp:vynechání adresáře.
Toto říká tato možnost,
-R, -r, --recursive copy directories recursively
Volba -r nebo -R vám tedy umožňuje rekurzivně kopírovat adresáře/podadresáře.
Nyní spusťte příkaz copy s možností – r.
cp -r src_dir dest_dir
nebo
cp -R src_dir dest_dir
Nyní můžete vidět, že příkaz fungoval dobře a adresáře spolu s obsahem jsou také zkopírovány.
Shrnutí
Linuxový příkaz cp je velmi užitečný a výkonný. Ve výchozím nastavení funguje pouze se soubory. Ke kopírování adresářů musíte použít volbu -r nebo -R, jinak dojde k chybě vynechání adresáře. Toto řešení by mělo fungovat na všech unixových a linuxových distribucích – Ubuntu, Redhat, Fedora nebo OpenSuse, CentOS atd
Další podrobnosti najdete v této diskusi o Askubuntu a StackOverflow.
Doufám, že vám tento článek pomohl. Prosím sdílejte a odebírejte.