Modul în care am făcut asta în trecut este folosirea gudron
ca intermediar -- dar sunt sigur că există și alte răspunsuri care sunt mai elegante decât acestea.
Unde avem o listă de fișiere care îndeplinesc un anumit criteriu IE: toate fișierele din /usr mai mici de 1M
$ find /usr -type f -size -1M
Pe care vrem să le copiem în locație /mnt/dst
.
Puteți folosi gudron ca vector pentru a împacheta/despacheta datele. IE
$ find /usr -type f -size -1M | tar --files-from=- -c | tar -xv -C /mnt/dst
Primul gudron
ia --fișiere-de la
care așteaptă o listă linie cu linie de căi complete către fișiere și creează un tarball la stdout.
Al doilea gudron
comută la calea de destinație cu -C
și despachetează tarballul primit de la țeavă.
Acest lucru are ca rezultat următoarea ieșire (când se utilizează -v
în a doua comandă tar).
usr/lib/grub/i386-pc/fdt.lst
usr/lib/python3.6/site-packages/pip/_vendor/html5lib/filters/__init__.py
usr/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/__init__.py
usr/lib/python3.6/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py
usr/lib/python3.6/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py
usr/lib/python3.6/site-packages/pip/operations/__init__.py
usr/lib/python3.6/site-packages/pkg_resources/_vendor/__init__.py
usr/lib/python3.6/site-packages/setuptools/_vendor/__init__.py
usr/lib/python3.6/site-packages/slip/__init__.py
usr/lib/python3.6/site-packages/slip/_wrappers/__init__.py
usr/lib/python3.6/site-packages/asn1crypto/_perf/__init__.py
...
...
Directorul de destinație rezultat produce arborele (tăiat pentru lizibilitate) care ar trebui să fie ceea ce căutați.
# arbore -L 3 /mnt/dst
/mnt/dst
âââ usr
âââ lib
â  âââ grub
â  âââ module_nod
â  âââ python3.6
âââ lib64
â  âââ python3.6
âââ local
â  âââ distribuie
âââ distribuie
âââ cripto-politici
âââ doc
âââ groff
âââ microcode_ctl
âââ mimică
âââ pki
âââ texlive
âââ textmf
âââ vim
âââ X11
20 de directoare, 0 fișiere