Puncte:0

Compararea structurii fișierelor

drapel lk

Am 2 structuri de dirs:

dir1
âââ 1
â âââ fișier1
âââ 2
â âââ fișier1
âââ 3
â âââ fișier1
âââ 4
â âââ fișier1
âââ 5
    âââ fișier1
dir2
âââ 1
âââ 2
âââ 5

eu folosesc xargs mkdir -p < dirs.txt pentru a face fișier.txt cu nume de dirs. În acest fișier am doar căi către dirs, fără fișiere în dirs. Cum scoateți căile fișierelor include numai lista de directori în dirs.txt?

De exemplu: am nevoie să scot din dir1 structura de dirs din dir2 cu fisiere de la dir1. Acest lucru ar trebui să arate ca dir3:

dir3
âââ 1
â âââ fișier1
âââ 2
â âââ fișier1
âââ 5
â âââ fișier1

La ultimul pas voi folosi: rsync -a /source/directory --files-from=/full/path/to/listfile /destination/directory

Puncte:0
drapel cn

Dificultatea cu aceste sarcini este de obicei atunci când trebuie să potriviți ceva la mijlocul căii, în acest caz, se pare că puteți potrivi al doilea nivel din cele două liste de directoare. De asemenea, presupun că nu aveți, de exemplu, linii noi în niciuna dintre căi.

awk -F / -vOFS=/ -vf=2 'NR==FNR {a[$f]++; următorul} $f într-un {$1=""; printeaza $0}' \
      <(printf %s\n dir2/*) dirs.txt | rsync -avx --files-from=- dir1/ dir3

Setarea delimitatorului -F la / practic face câmpuri din diferitele componente de cale, componenta de cale după punct de start va deveni al 2-lea câmp. Prima acțiune de tipar NR==FNR {} citește primul fișier în matrice, care este lista de directoare dir2. Când primul fișier ajunge la sfârșit, NR==FNR devine fals și al doilea fișier va fi procesat de următoarea acțiune de model. Înainte de a imprima calea, punct de start trebuie eliminat pentru a ține cont de sursa/destinația rsync.

Puncte:0
drapel cn

Utilizați comanda găsi. Poate fi instruit folosind -tip flag pentru a găsi numai directoare, iar cu -cale steag, găsiți numai elemente care se potrivesc unei căi. De exemplu,

găsi . -calea './dir1/*' -tip d

va lista numai toate directoarele și subdirectoarele sub dir1. Apoi îl puteți redirecționa către a dirs.txt fișier și editați acel fișier așa cum doriți.

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.