niektórzy szukają lepszego wyjaśnienia stron podręcznika, ponieważ nie zawsze jest jasne, co oznaczał opis. Musiałem kopać wiele razy i testować / eksperymentować, aby dowiedzieć się, co tak naprawdę dzieje się z danym poleceniem. Strona man grep może mnie pomylić każdego dnia.
Joe,
2
Rozumiem twoją frustrację, ale imo, najczęściej najlepszym sposobem na naukę jest testowanie i eksperymentowanie.
trzykrotnie
37
LUB ucz się, zadając pytania tutaj, uzyskując odpowiedź w sposób, który rozumiesz, a następnie lepiej rozumiesz, co i jak testować i eksperymentować. Należy pamiętać, że dla ciebie bardzo często nie działa, dla mnie itp. Itd.
Czy Lanni
Odpowiedzi:
198
Rekurencyjne oznacza, że cpkopiuje zawartość katalogów, a jeśli katalog zawiera podkatalogi, są one również kopiowane (rekurencyjnie). Bez -RThe cpkomenda pomija katalogi. -rjest identyczny z -RLinuksem, różni się w niektórych przypadkach brzegowych w niektórych innych wariantach uniksowych.
Domyślnie cptworzy nowy plik, który ma taką samą zawartość jak stary plik i takie same uprawnienia, ale ograniczone przez umask ; kopia jest datowana od momentu kopiowania i należy do użytkownika wykonującego kopię. Dzięki tej -popcji kopia ma ten sam czas modyfikacji, ten sam czas dostępu i takie same uprawnienia jak oryginał. Ma również tego samego właściciela i grupę co oryginał, jeśli użytkownik wykonujący kopię ma uprawnienia do tworzenia takich plików.
Ta -aopcja oznacza -Ri -pkilka innych opcji konserwacji. Próbuje utworzyć kopię możliwie najbliższą oryginałowi: to samo drzewo katalogów, te same typy plików, ta sama zawartość, te same metadane (czasy, uprawnienia, rozszerzone atrybuty itp.).
Zasadniczo, chyba że chcesz czegoś specjalnego, nigdy nie potrzebujesz, -rponieważ -a(dla archive) jest zawsze najbezpieczniejszym i prawdopodobnie tym, czego się spodziewałeś.
ams
2
@ams Tak, to dobre podsumowanie. Jedynym częstym powodem do użycia -rjest to, że korzystasz z jakiegoś wariantu uniksowego innego niż Linux, który go nie ma -a, i na ogół byś go używał cp -rp. Lub rsync -a.
Gilles,
czasami uprawnienia pozwolą -r, ale nie -a
DrCord
Nie -r, nie -R nie działa w Ubuntu 18
Arkady
16
Opcja -r lub -R dla „rekurencyjnego” oznacza, że skopiuje wszystkie pliki, w tym pliki z podfolderów.
Podana opcja -a jest taka sama jak -dR, co oznacza, że zachowa łącza, a także skopiuje zawartość podkatalogów. Zachowanie linków oznacza, że nie będą one podążać za linkami, ponieważ są rekurencyjnie kopiowane.
Odpowiedzi:
Rekurencyjne oznacza, że
cp
kopiuje zawartość katalogów, a jeśli katalog zawiera podkatalogi, są one również kopiowane (rekurencyjnie). Bez-R
Thecp
komenda pomija katalogi.-r
jest identyczny z-R
Linuksem, różni się w niektórych przypadkach brzegowych w niektórych innych wariantach uniksowych.Domyślnie
cp
tworzy nowy plik, który ma taką samą zawartość jak stary plik i takie same uprawnienia, ale ograniczone przez umask ; kopia jest datowana od momentu kopiowania i należy do użytkownika wykonującego kopię. Dzięki tej-p
opcji kopia ma ten sam czas modyfikacji, ten sam czas dostępu i takie same uprawnienia jak oryginał. Ma również tego samego właściciela i grupę co oryginał, jeśli użytkownik wykonujący kopię ma uprawnienia do tworzenia takich plików.Ta
-a
opcja oznacza-R
i-p
kilka innych opcji konserwacji. Próbuje utworzyć kopię możliwie najbliższą oryginałowi: to samo drzewo katalogów, te same typy plików, ta sama zawartość, te same metadane (czasy, uprawnienia, rozszerzone atrybuty itp.).źródło
-r
ponieważ-a
(dlaa
rchive) jest zawsze najbezpieczniejszym i prawdopodobnie tym, czego się spodziewałeś.-r
jest to, że korzystasz z jakiegoś wariantu uniksowego innego niż Linux, który go nie ma-a
, i na ogół byś go używałcp -rp
. Lubrsync -a
.Opcja -r lub -R dla „rekurencyjnego” oznacza, że skopiuje wszystkie pliki, w tym pliki z podfolderów.
Podana opcja -a jest taka sama jak -dR, co oznacza, że zachowa łącza, a także skopiuje zawartość podkatalogów. Zachowanie linków oznacza, że nie będą one podążać za linkami, ponieważ są rekurencyjnie kopiowane.
źródło