Mam katalog zawierający kilka innych folderów zawierających pliki CoffeeScript / JavaScript. Jestem w stanie skompilować pliki CoffeeScript do nowego folderu o tej samej strukturze folderów.
Chcę tylko skopiować rekursywnie wszystkie pliki * .js z folderu źródłowego do folderu docelowego. Nie chcę również zastępować żadnych plików, które są już obecne w folderze docelowym. Jakieś myśli o tym, jak to osiągnąć?
Próbowałem użyć cp -n source/**.js desination/
i cp -Rn source/**.js desination/
po spojrzeniu na inne podobne pytanie, ale wydaje się, że nie działa.
Masz pomysł, jak to osiągnąć?
linux
file-transfer
cp
AlbertEngelB
źródło
źródło
Odpowiedzi:
Możesz użyć rsync (robi to również lokalną kopię)
-r
powracać do katalogów,--ignore-existing
zignorować istniejące pliki w miejscu docelowym,include
iexclude
filtruje średni: obejmuje wszystkie katalogi, obejmują wszystkie * .js, wykluczyć resztę; potrzebne jest pierwsze dołączenie, w przeciwnym razie ostatnie wykluczenie spowoduje także wykluczenie katalogów przed skanowaniem ich zawartości.Na koniec możesz dodać „
-P
jeśli chcesz oglądać postępy”, „--list-only
jeśli chcesz zobaczyć, co by skopiował bez faktycznego kopiowania”, a-t
jeśli chcesz zachować znaczniki czasu.Nie jest to powiązane, ale ostatnio nauczyłem się polecenia rsync, kiedy przenosiłem 15 lat dokumentów z jednej partycji na drugą. Przekonany, że moje pliki tam są, wyczyściłem starą partycję i włożyłem tam trochę innych rzeczy; Później zdałem sobie sprawę, że straciłem wszystkie znaczniki czasu i odkryłem flagę -t. Chciałem tylko podzielić się moim cierpieniem: ”(
źródło
rsync
najwyraźniej to bomba.Można to również osiągnąć za pomocą cp. Spójrz tutaj:
xxx = źródło
rrr = miejsce docelowe
v = pełny
n = bez clobber (bez nadpisywania)
p = zachowaj uprawnienia
r = rekurencyjny
źródło
Patrząc na strony podręcznika, wydaje się, że chcesz tę
-n
opcję.źródło
Moja dystrybucja nie miała dostępnego Clobbera, więc:
xxx = źródło
rrr = miejsce docelowe
v = pełny
i = interaktywny (monit o zastąpienie) | dlatego polecenie poprzedzone jest „echo n |”
p = zachowaj uprawnienia
r = rekurencyjny
źródło