Wydałem następujące polecenie:
sudo cp ~/Transfers/ZendFramework-1.11.4-minimal/library/Zend/* ~/public_html/cmsk.dev/library/
Kiedy to robię, zaczynam otrzymywać następujące wiadomości:
cp: omitting directory `Tag'
cp: omitting directory `Test'
cp: omitting directory `Text'
cp: omitting directory `TimeSync'
cp: omitting directory `Tool'
cp: omitting directory `Translate'
cp: omitting directory `Uri'
cp: omitting directory `Validate'
i tak dalej...
Dlaczego otrzymuję te wiadomości?
*
rozszerzenie jest rozwijane przez Bash, a nie przezcp
. Sprawdź to sam, stawiającecho
przed swoim poleceniem. Po rozwinięciu dopasowuje wszystko do poprzedzającego...library/Zend/
(zawarte w nim pliki i katalogi).omitting directory 'directory'
że nie oznacza to, że usuwa on ten katalog.chmod a+rx ~/
po próbie skopiowania zcp /home/2110/* /home/2111/
nim powoduje błąd, który stwierdza, że odmowa dostępu. gdzie się myliłem. przykro mi to komentować, ponieważ nie mogę zadawać duplikatów pytań. mam nadzieję na szybką odpowiedź :)/home/2110
są własnością użytkownika 2110, podczas gdy pliki w/home/2111
są własnością 2111. Aby ustawić właściciela, użyj czegoś takiegosudo chown -R 2111 /home/2111
.Komunikat oznacza, że
cp
nie skopiowano wymienionych katalogów. Jest to domyślne zachowaniecp
- tylko pliki są kopiowane normalnie, niezależnie od tego, czy określasz je jawnie, czy używasz*
. Jeśli chcesz skopiować katalogi, użyj-r
przełącznika, który oznacza „rekurencyjny”.źródło
Kilka rzeczy, które należy sprawdzić:
Nie używać
sudo
. Nie potrzebujesz go, masz już uprawnienia do pisania rzeczy we własnym katalogu domowym.Możesz łatwo przeglądać ukryte pliki i katalogi w graficznym menedżerze plików, wybierając z menu opcję Wyświetl / pokaż ukryte pliki. Lub naciskając Ctrl- H.
Musisz użyć
-R
opcji wcp
poleceniu, aby skopiować katalog i jego zawartość./ home nie jest twoim katalogiem domowym. / home / nazwa użytkownika to. Prawdopodobnie próbujesz skopiować z niewłaściwego miejsca.
W powłoce rozróżniana jest wielkość liter, więc ~ / download i ~ / Downloads to dwie różne rzeczy.
źródło
Podczas kopiowania katalogu takiego jak:
Kopiujesz tylko
dir1
siebie, a nie zawarte w nim pliki, więc na końcu skończysz z nową strukturą katalogów, podczas gdy ta struktura nie istnieje.Innymi słowy, po to został skopiowany będzie powiedzieć, że moje zawartość jest
file1
,file2
itp; Jednak te pliki nie zostały skopiowane i dlatego w nim nie istnieją.Aby rozwiązać ten problem, który mógł się pojawić
cp
domyślnie, nie kopiuje katalogów i pomija je, chyba że określisz-r
opcję kopiowania wszystkich plików również rekurencyjnie.źródło
Powodem tego
omitting directory
jest to, żecp
i wszystkie znane mi narzędzia do kopiowania tworzą listę plików i podkatalogów, które należy skopiować przed rozpoczęciem kopiowania plików. Gdy--recursive
brakuje opcji, podkatalogi są usuwane z tej listy. Jako takie pominięcie oznacza usunięcie z listy kopii, a nie z nośnika źródłowego. Uważam, że dotyczy to znaczenia wiadomości.źródło
Polecenie cp służy do kopiowania plików i katalogów, a nie zagnieżdżonych katalogów. Jeśli chcesz skopiować katalogi zagnieżdżone, możesz dodać -r po czym, gdzie -r oznacza rekurencyjny.
Składnia, którą możesz zastosować (działając jako root):
lub
źródło
Załóżmy, że masz dwa katalogi „Tag” i „Test”
Jeśli chcesz skopiować katalog „Tag” do katalogu „Test”, użyj polecenia
Przeważnie problem zostanie rozwiązany za pomocą powyższego kodu, jeśli nie, i pojawi się komunikat poniżej
następnie dodaj niektóre pliki do katalogu „Tag”, a następnie skopiuj je do „Test”. Właściwie to mam ten sam problem, ale rozwiązany tak, jak powiedziałem po drugie.
źródło