Pokud jste nováčkem v příkazovém řádku Linuxu, pravděpodobně máte na mysli tuto otázku:Jak zkopíruji adresář a soubory v něm do jiného adresáře v příkazovém řádku Linuxu?
Zde je návod, jak zkopírovat adresář v Linuxu:
cp -r source_directory destination_directory
Pravděpodobně již víte, že pomocí příkazu cp můžete kopírovat soubory v Linuxu. Víte, že můžete použít stejný příkaz cp ke zkopírování složky v příkazovém řádku Linuxu?
Cha! Už jste to zkusili a možná se vám zobrazila tato chyba:
cp: -r not specified; omitting directory 'test_dir'
Dovolte mi ukázat vám jednu nebo dvě věci o kopírování adresáře v Linuxu.
Kopírovat adresář do příkazového řádku Linuxu
Určitě můžete použít stejný příkaz cp, ale s rekurzivní volbou -r ke zkopírování složky s jejím obsahem do jiné složky. Výše zmíněná chyba také naznačuje, že jste přehlédli volbu -r.
Jediné, co musíte udělat, je použít příkaz tímto způsobem:
cp -r source_directory destination_directory
A pokud nyní použijete příkaz ls v cílovém adresáři, měl by v něm být celý zdrojový adresář.
Volba -r umožňuje rekurzivní volbu. To znamená, že veškerý obsah adresáře včetně jeho vlastních podadresářů, vše v adresáři bude zkopírováno do cíle.
Několik věcí k poznámce o kopírování adresáře v Linuxu
Zde je několik věcí, které je třeba poznamenat, a tipy pro kopírování složek.
Cílový adresář neexistuje? Bude vytvořen
Pokud cílový adresář neexistuje (ale cesta existuje), bude vytvořen až do jedné úrovně (vysvětleno v další části). Nyní však zkopíruje obsah zdrojového adresáře, nikoli samotný zdrojový adresář.
Pokud například uděláte toto:
cp -r source_directory non_existing_directory
Neexistující_adresář bude vytvořen s obsahem zdrojového_adresáře, ale nebude obsahovat zdrojový_adresář. Budou zkopírovány pouze soubory source_directory. Bylo by to, jako by non_existing_directory byl replikou source_directory.
[email protected]:~$ ls
test_dir
[email protected]:~$ cp -r test_dir new_dir
[email protected]:~$ tree
.
├── new_dir
│ ├── c.xyz
│ ├── myzip1.zip
│ └── myzip2.zip
└── test_dir
├── c.xyz
├── myzip1.zip
└── myzip2.zip
2 directories, 6 files
Při kopírování nelze vytvořit vnořený adresář
Výše uvedený příkaz nelze použít k vytvoření vnořené adresářové struktury.
Pokud se například pokusíte použít cp -r source_dir dir1/dir2/dir3, ale dir2 a dir3 neexistují, nevytvoří vnořenou adresářovou strukturu a příkaz selže.
Zachovat původní atributy souboru
Jeden poslední tip, jak to zkrátit. Pokud použijete volbu -a spolu s volbou -r, zachová se původní informace o souboru, jako jsou oprávnění k souboru, časová razítka souboru atd. Adresář se archivuje do nového umístění, místo aby jej znovu vytvářel.
To je ono
Toto množství informací by vám mělo stačit, abyste věděli, jak zkopírovat adresář v Linuxu. Pokud máte dotazy nebo návrhy, neváhejte zanechat komentář.