Czytałem to pytanie, ale nie ma na nie odpowiedzi, a moja jest inna.
Linux: próba znalezienia plików z listy rekurencyjnie i skopiowania ich gdzie indziej
Próbuję znaleźć prawdziwe pliki z dowiązań symbolicznych tych plików!
$ sudo find /usr/lib64 -iname "libSM.so" -o -iname "libX11.so" -o -iname "libXinerama.so" -o -iname "libXxf86vm.so" -o -iname "libatk-1.0.so" -o -iname "libc.so.6" -o -iname "libcairo.so" -o -iname "libdl.so" -o -iname "libgcc_s.so.1" -o -iname "libgdk-x11-2.0.so.0" -o -iname "libgdk_pixbuf-2.0.so" -o -iname "libglib-2.0.so" -o -iname "libgmodule-2.0.so" -o -iname "libgobject-2.0.so" -o -iname "libgthread-2.0.so" -o -iname "libgtk-x11-2.0.so.0" -o -iname "libjpeg.so" -o -iname "libm.so" -o -iname "libpango-1.0.so" -o -iname "libpangocairo-1.0.so" -o -iname "libpng.so" -o -iname "libpthread.so.0 " -o -iname "librt.so" -o -iname "libstdc++.so.6" -o -iname "libtiff.so.[3,5]" -o -iname "libz.so"
W przypadku tego pytania próbowałem tak krótszego przykładu:
$ sudo find -L /usr/lib64 -iname "libSM.so" -o -iname "libz.so"
-o -iname "libtiff.so.[3,5]" -exec cp {} /usr/copy \;
Folder pusty.
$ ls -al /usr/copy/
total 0
drwxr-xr-x. 2 root root 6 Feb 15 22:39 .
drwxr-xr-x. 14 root root 167 Feb 15 21:33 ..
Pliki do skopiowania
$ sudo find /usr/lib64 -iname "libSM.so" -o -iname "libz.so" -o -iname "libtiff.so.[3,5]"
/usr/lib64/libz.so
/usr/lib64/libSM.so
/usr/lib64/libtiff.so.5
/usr/lib64/libtiff.so.3
Komenda!
$ sudo find /usr/lib64 -iname "libSM.so" -o -iname "libz.so" -o -iname "libtiff.so.[3,5]" -exec cp -L {} /usr/copy \;
Wynik!
$ ls -al /usr/copy/
total 884
drwxr-xr-x. 2 root root 46 Feb 15 22:39 .
drwxr-xr-x. 14 root root 167 Feb 15 21:33 ..
-rwxr-xr-x. 1 root root 419456 Feb 15 22:39 libtiff.so.3
-rwxr-xr-x. 1 root root 479440 Feb 15 22:39 libtiff.so.5
$
Tylko wykonuje kopię dla ostatniego znalezionego pliku !!!
Jak to zrobić
linux
find
symbolic-link
exec
Chepe Lucho
źródło
źródło
Odpowiedzi:
man find
na moim Kubuntu stwierdza:Potrzebujesz (ocalonych) nawiasów:
źródło