Próbuję zrozumieć znaczenie kropki w bashu i to, jak różni się ona od gwiazdki. Czy ktoś może opracować? Na przykład, jaka jest różnica między cp -ar /foo/. /foo2/
icp -pr /foo/* /foo2/
11
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.
cp -r /foo/*
czy to samo cocp /foo/*
?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.