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 komunikaty:
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 dostaję te wiadomości?
Domyślnie cp
kopiuje tylko pliki znajdujące się bezpośrednio w katalogu, a nie podkatalogi w nim. Komunikat cp: pominięcie katalogu 'directory'
ostrzega, że wspomniany katalog nie jest kopiowany.
Aby to zrobić, należy podać opcję -r
(lub --recursive
):
sudo cp -r ~/Transfers/ZendFramework-1.11.4-minimal/library/Zend/* ~/public_html/cmsk.dev/library/
Strona manual page (polecenie: man cp
) zawiera przegląd dostępnych opcji.
Komunikat oznacza, że cp
nie skopiował wymienionych katalogów. Jest to domyślne zachowanie dla cp
- kopiowane są tylko pliki, niezależnie od tego, czy podajesz je jawnie, czy używasz *
. Jeśli chcesz, aby kopiowane były katalogi, użyj przełącznika -r
, który oznacza "rekursywne".
Kilka rzeczy, które trzeba sprawdzić:
Nie używaj sudo
. Nie potrzebujesz go, masz już uprawnienia do pisania rzeczy w swoim własnym katalogu domowym.
Możesz łatwo zobaczyć ukryte pliki i katalogi w graficznym menadżerze plików, wybierając View/Show Hidden Files z menu. Lub naciskając Ctrl - H.
Musisz użyć opcji -R
w poleceniu cp
, aby skopiować katalog i jego zawartość.
/home nie jest'twoim katalogiem domowym. Jest nim /home/username. Więc prawdopodobnie próbujesz kopiować z niewłaściwego miejsca.
W powłoce rozróżniana jest wielkość liter, więc ~/downloads i ~/Downloads to dwie różne rzeczy.