Puncte:1

Fișierele specifice Linux cp dintr-o listă text de fișiere și în subdirectoare dintr-o listă text?

drapel sn

Vă cer ajutorul pentru a-mi rezolva problema pentru că sunt blocat. Vă explic situația: vreau să copiez fișiere a căror cale o am pe un fișier txt în anumite subdirectoare specificate într-un al doilea fișier (am și un fișier csv complet care include aceste 2 coloane: numele subdirectoarelor ($valoare1), calea fișierului ($valoare2))

Am putut crea automat subdirectoarele folosind această comandă:

xargs mkdir -p </scripts/repertoires.csv

Știu cum să copiez toate fișierele într-un singur director folosind această comandă:

cat /scripts/fichiers.csv | xargs -I% cp% / folder destination

Dar nu pot copia fiecare linie corespunzătoare unui fișier din subdirectorul care i se potrivește, Ca să încerc să fiu mai clar, vreau să copiez $valoare2 în /dosarul de destinație/$valoare1

Puncte:1
drapel jo

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

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.