Tutoriel Linux

Kopírovat složku Linux s skrytými soubory a právy

Débutant3 min de lecture

Kopírování adresáře se může zdát banální, dokud v adresáři nejsou skryté soubory, symbolické odkazy nebo užitečné datum pro skript. cp -r zkopíruje strukturu, ale cp -a je často nejlepší volbou pro duplikaci pracovního adresáře bez změny jeho atributů.

Před odstraněním zdroje vytvořte kopii, zkontrolujte ji a otevřete několik souborů. Úspěšný příkaz neprokazuje, že jste mířili na správnou cestu.

Bezpečné kopírování dvou adresářů na Linuxovém úložišti
Nejprve zkopírujte, poté zkontrolujte soubory, práva a odkazy.

Zvolit mezi cp -r a cp -a

cp -r postupuje do podadresářů. Záznamy, které začínají tečkou, jsou zahrnuty při kopírování samotného adresáře. Naopak se vyhněte globbing jako *, pokud očekáváte i skryté soubory: shell je ve výchozím nastavení ignoruje.

cp -a aktivuje archivační režim. Zachovává co nejvíce oprávnění, vlastníky, data, symbolické odkazy a fyzické odkazy. Pro místní zálohu nebo migraci adresáře je to obvykle příkaz, který je třeba upřednostnit. Může vyžadovat zvýšená práva, pokud musíte zachovat vlastníka, kterého váš účet nemůže nastavit.

cp -a -- /srv/app/ /srv/app-copie/

Parametr -- odděluje volby od cest. Zabraňuje tomu, aby soubor začínající pomlčkou byl interpretován jako volba. Konečný znak lomítka ve zdroji znamená, že zkopírujete jeho obsah do /srv/app-copie/. Pokud tento adresář již existuje, zkontrolujte získanou strukturu před pokračováním.

Připravit cíl bez přepsání špatného adresáře

Nejprve vytvořte jasně pojmenovaný cíl, pak si vylistujte obě strany. Na serveru nezačínejte rekurzivní kopírování na ručně sestavenou cestu ve skriptu bez zobrazení této cesty v logách.

mkdir -p -- /srv/app-copie
find /srv/app -maxdepth 1 -printf '%fn' | sort
find /srv/app-copie -maxdepth 1 -printf '%fn' | sort

Pokud chcete odmítnout jakékoli přepsání během prvního pokusu, přidejte -n. Tato volba ignoruje již přítomné soubory, takže se nehodí pro kompletní synchronizaci. Pro nahrazení existujících dat vytvořte zálohu nebo pracujte v novém adresáři, poté přepněte službu na ověřenou kopii.

Kontrola souborů, práv a odkazů

Začněte kontrolou skrytých souborů a práv. ls -la zobrazuje názvy začínající tečkou. stat umožňuje porovnat oprávnění a data citlivého souboru.

ls -la /srv/app
ls -la /srv/app-copie
stat -c '%n %a %U:%G %y' /srv/app/config.ini /srv/app-copie/config.ini
find /srv/app-copie -type l -ls

Poslední příkaz vylistovává symbolické odkazy. Při použití cp -a zůstává odkaz normálně odkazem. Při méně vhodné kopii se můžete dostat k obsahu jeho cíle nebo k odkazu, který se stal neplatným po přesunu.

  • počítejte soubory s find ... -type f | wc -l;
  • otevřete nejdůležitější konfigurační soubor;
  • testujte program s kopií před odstraněním zdroje;
  • uchovávejte zdroj, dokud služba nebo skript neprojde svým funkčním testem.

Pro srovnání obsahu dvou strukturovaných adresářů použijte diff -qr /srv/app /srv/app-copie, který označuje soubory, které se liší. Nenahrazuje to validační aplikaci, ale rychle odhalí neúplnou kopii.

Pokud také musíte opravit oprávnění po duplikaci, průvodce o chmod rekurzivně pod Linuxem vysvětluje, proč může chmod -R, spuštěný příliš rychle, rozbít spustitelné soubory. Pro nalezení souboru před kopií použijte také find pod Linuxem.

sudo apt update && sudo apt upgrade