/ / Pobierz całą zawartość z folderu z podfolderem skopiowanym do innego katalogu za pomocą bash - bash

Pobierz całą zawartość z folderu z podfolderem skopiowanym do innego katalogu z bash-bash

Mam katalog, w którym znajduje się wiele folderówktóre mają podfoldery ponownie, a następnie są jakieś pliki. Czy mogę napisać skrypt basha, który kopiuje wszystkie pliki z danego katalogu do jednego folderu? Aby nie musiałem poruszać się po pojedynczym folderze i kopiować zawartość do innego folderu.

Odpowiedzi:

1 dla odpowiedzi № 1

W najwyższym katalogu, w którym chcesz skopiować pliki:

find . -type f -exec cp {} /some/new/location ;

Znajduje wszystkie normalne pliki, a następnie kopiuje je do /some/new/location


0 dla odpowiedzi nr 2

Możesz użyć find do wyświetlenia wszystkich plików w folderze:

find ./source -type f

a następnie użyj wyjścia jako argumentu dla cp, wyglądałoby to tak:

cp $(find ./source -type f) destination

Wystąpiłby problem, gdyby w oryginalnym drzewie katalogów znajdowały się pliki o sprzecznej nazwie. W takim przypadku cp odmówi skopiowania dodatkowych plików o tej samej nazwie z błędem takim jak:

cp: nie zastąpi właśnie utworzonego destination/t22" with./source/test/t2/t22 ”

Aby wykonać kopie plików o tej samej nazwie, możesz użyć opcji tworzenia kopii zapasowej, takiej jak ta:

cp --backup=numbered $(find ./source -type f) destination

Jeśli chcesz zobaczyć, co się dzieje, użyj opcji -v (verbose)

cp -v --backup=numbered $(find ./source -type f) destination