Mam w nich projekty Eclipse i plik „.project”, struktura katalogów wygląda jak „ myProject/.project
”. Chcę skopiować te pliki „.project” do innego katalogu, ale chcę zachować nazwę otaczającego katalogu.
Powiedzmy, że mam „ a/myProject/.project
”, chcę skopiować „ myProject/.project
” na „ b
”, więc być „ b/myProject/.project
”, ale „ b/myProject
” nie istnieje. Kiedy próbuję w:
cp -r ./myProject/.project ../b
kopiuje tylko sam plik „.project”, bez katalogu „myProject”. Proszę doradź.
Najpierw użyj,
mkdir -p
aby utworzyć folder docelowy z rekurencyjnym tworzeniem ścieżki nadrzędnej. Następnie skopiuj zawartość do folderu docelowego:źródło
Zobacz
man cp
więcej informacji.źródło
Używam cpio w połączeniu z find. Wyjaśnienie tutaj .
Przykład twojego przypadku użycia:
To polecenie znajduje wszystkie pliki
/a/myProject/.project/
i kopiuje, zachowując ścieżkę, wszystkie zawarte w nim pliki.źródło
Oprócz
--parents
tego wymagane jest również dodanie-r
opcji, aby uniknąć pomijania kopii większości wewnętrznych katalogówTak więc polecenie, które działa dla mnie, jest
źródło
Należy pamiętać, że wydaje się, że występuje błąd
cp --parents
. Gdy korzystałem--parents
z niego--preserve=all
, atrybuty daty i godziny NIEKTÓRYCH katalogów docelowych NIE zostały zachowane.Poniższy link wydaje się potwierdzać, że jest to błąd: błąd # 8767: cp: --preserve = wszystko nie działa dla rodziców, gdy użyto opcji --parent .
Wygląda więc na to, że nie można polegać na zachowaniu atrybutów podczas używania
--parents
razem z takimi jak--preserve=all
lub-p
.źródło
Kiedyś
--parents
zcp
dowództwem i pracował perfeclty ze mną. aby uzyskać więcej informacji, zawsze używaj instrukcji. Dziękuję Ci.źródło