Odpowiedzi:
Kropka ( .
) to tylko .
katalog wewnątrz katalogu, który jest taki sam jak sam katalog ( ls -la /foo
pokaże ci go). Więc jeśli kopiujesz foo/.
gdzie indziej, skutecznie kopiujesz całe drzewo poniżej foo
bez kopiowania foo
samego siebie (kopiujesz je do foo2/.
tego samego, co foo2
).
/foo/*
rozpręża się przez powłokę do listy niewyspecjalizowanych ukrytych plików i katalogów /foo
, więc byłoby skopiować taką samą strukturę katalogów poniżej /foo
na /foo2
jak dobrze, z wyjątkiem dotfiles / dotdirs. Skutecznie cp
otrzyma (potencjalnie) wiele argumentów. Jeśli lista jest zbyt duża, może nawet spowodować cp
niepowodzenie wykonania.
set -x
lub, echo cp -pr /foo/* /foo2
aby zobaczyć, co się dzieje. Ważne jest, aby zdać sobie sprawę, że to powłoka rozszerza symbole wieloznaczne. cp
nie widzi gwiazdy.
cp -r /foo/*
czy to samo cocp /foo/*
?