[linux] directory contents mergen?

Pagina: 1
Acties:

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
Hoi

Ik ben op zoek naar een manier om de inhoud van meerdere directories samengevoegd te kunnen zien in een andere directory.

Dus ik heb bv:

/opt/map1/sub1
/opt/map1/sub2
/opt/map2/sub3
/opt/map2/sub4


dan wil ik op een of andere manier een map hebben waar, als ik ls doe, ik dit zie staan:

sub1
sub2
sub3
sub4

Voor de duidelijkheid die mappen zijn partities waar mappen in staan.
Ik heb al gekeken naar autofs maar die werkt alleen met netwerk volumes (toch?)..
Je zou ook symlinkjes kunnen aanmaken maar dat is dus niet automatisch, maar als niets anders bestaat kan ik misschien een scriptje maken wat allemaal symlinks maakt van bestanden uit verschillende mappen naar 1 map toe.

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Zou je misschien kunnen vertellen wat de achterliggende gedachte hierachter is? De vraag zoals je die nu stelt is niet eenvoudig te beantwoorden aangezien hetgeen je wilt doen (volgens mij) onmogelijk is.

Misschien is hetgeen wat je wil bereiken ook op een andere manier te doen? :)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • usr-local-dick
  • Registratie: September 2001
  • Niet online
Hmm zal proiberen het uit te leggen ;)
Ik heb een streaming mp3 server, daar zit nu 1 disk in.
Het programma wat de muziek served kijkt in 1 map en laat de inhoud zien (submapjes).
Ik wil nu een andere disk erbij doen, maar dan krijg ik dus in de root twee mapjes te zien.
Als ik nu de contents kan mergen van twee mappen dan is het weer 1 root.

  • terabyte
  • Registratie: September 2001
  • Laatst online: 06-07-2025

terabyte

kan denken als een computer

Misschien moet je gewoon symlinks aan maken?
Tenminste, dat is wat ik uit je voorbeeld haal. Of dat de oplossing is weet ik niet...

[ Voor 50% gewijzigd door terabyte op 17-10-2004 20:47 ]


  • XTerm
  • Registratie: Juli 2001
  • Laatst online: 10-06-2025
code:
1
 cp /opt/map2/* -R /opt/map1/


Duh :?

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
XTerm schreef op 17 oktober 2004 @ 21:00:
code:
1
 cp /opt/map2/* -R /opt/map1/


Duh :?
de ene directory is 250 gb (98% vol nu).
de andere directory wordt een map op een schijf van 120 gb.
Daarom wil ik een transparante view en geen copy ;)

  • XTerm
  • Registratie: Juli 2001
  • Laatst online: 10-06-2025
Aha !

DIT NIET UITVOEREN ZONDER TE TESTEN WANT IK ZIT OP EEN WINDOWSBAK EN KAN HET NIET TESTEN !!!!

code:
1
2
3
4
cd /opt/map2/
for x in *; do
  ln -s $x /opt/map1/$x 
done

  • M55
  • Registratie: September 2003
  • Niet online

M55

XTerm schreef op 17 oktober 2004 @ 21:09:
Aha !

DIT NIET UITVOEREN ZONDER TE TESTEN WANT IK ZIT OP EEN WINDOWSBAK EN KAN HET NIET TESTEN !!!!

code:
1
2
3
4
cd /opt/map2/
for x in *; do
  ln -s $x /opt/map1/$x 
done
:?
code:
1
2
cd /opt/map2/
ln -s /opt/map1/* ./


lijkt me makkelijker :)
(alle files in map1 worden dan toegankelijk in map2)

[ Voor 7% gewijzigd door M55 op 17-10-2004 21:16 ]


  • XTerm
  • Registratie: Juli 2001
  • Laatst online: 10-06-2025
M55 schreef op 17 oktober 2004 @ 21:14:
[...]


:?
code:
1
2
cd /opt/map2/
ln -s /opt/map1/* ./


lijkt me makkelijker :)
(alle files in map1 worden dan toegankelijk in map2)
Ik wist niet dat dat kon :)

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

usr-local-dick schreef op 17 oktober 2004 @ 19:53:[...]

Je zou ook symlinkjes kunnen aanmaken maar dat is dus niet automatisch, maar als niets anders bestaat kan ik misschien een scriptje maken wat allemaal symlinks maakt van bestanden uit verschillende mappen naar 1 map toe.
;)

Is het geen idee om naar grote wat zaken te verdelen en dan de ene schijf als submap van de andere schijf te mounten? Dus pak de grootste dir, gooi die op een eigen schijf en mount die als subdirectory van de andere directory

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Sommige besturingssystemen hebben een optie ook de inhoud van de onderliggende directory te laten zien, ik kan me vaag herinneren dat linux dat ook had, maar ik vind het helaas nergens terug in de manpage van mount op het moment helaas :)

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

blaataaps schreef op 17 oktober 2004 @ 21:28:
Sommige besturingssystemen hebben een optie ook de inhoud van de onderliggende directory te laten zien, ik kan me vaag herinneren dat linux dat ook had, maar ik vind het helaas nergens terug in de manpage van mount op het moment helaas :)
Bedoel je deze twee opties als mogelijke oplossing?
--bind Remount a subtree somewhere else (so that its contents are available in both places). See above.

--move Move a subtree to some other place. See above.

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Nee :)

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
Het wordt steeds makkelijker ;)

code:
1
2
3
4
cd /dest
rm -rf *
cp -al /source/dir1/* /dest/
cp -al /source/dir2/* /dest/


en klaar is klara ;)

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
usr-local-dick schreef op 17 oktober 2004 @ 22:03:
Het wordt steeds makkelijker ;)

code:
1
2
3
4
cd /dest
rm -rf *
cp -al /source/dir1/* /dest/
cp -al /source/dir2/* /dest/


en klaar is klara ;)
Oei dit werkt wel op 1 partitie maar niet cross-filesystem.
En daar ging het nou net om 8)7

ALs je geen hard links maar symbolic links aanmaakt lukt het gelukkgi wel:
code:
1
2
3
4
cd /dest
rm -rf *
cp -dpRs /source/dir1/* /dest/
cp -dpRs /source/dir2/* /dest/


edit:
nou kijken wat er gebeurt als er twee mappen met dezelfde naam in beide directories staan ;)

  • Wilke
  • Registratie: December 2000
  • Laatst online: 16-02 19:49
usr-local-dick schreef op 17 oktober 2004 @ 20:44:
Hmm zal proiberen het uit te leggen ;)
Ik heb een streaming mp3 server, daar zit nu 1 disk in.
Het programma wat de muziek served kijkt in 1 map en laat de inhoud zien (submapjes).
Ik wil nu een andere disk erbij doen, maar dan krijg ik dus in de root twee mapjes te zien.
Als ik nu de contents kan mergen van twee mappen dan is het weer 1 root.
Ah, da's duidelijk idd. Misschien kun je hiervoor Large Volume Management (LVM) gebruiken?

Dan kun je meerdere schijven en/of partities bij elkaar voegen tot een grote 'virtuele' partitie, en daar dus groot 1 filesystem van maken.

Lijkt mij de makkelijkste oplossing zonder allemaal rariteiten met symlinks enzo uit de kast te hoeven trekken.

Nadeel is alleen dat als 1 HD crasht, het filesystem stuk is. Maar het deel op de nog werkende HD zal dan vast alsnog (grotendeels?) wel te redden zijn.

  • igmar
  • Registratie: April 2000
  • Laatst online: 31-01 23:50

igmar

ISO20022

Spider.007 schreef op 17 oktober 2004 @ 21:40:
Bedoel je deze twee opties als mogelijke oplossing?
Nee, hij bedoelt mount manual, en dan vooral

code:
1
2
3
4
5
6
    union   Causes the namespace at the mount point to appear as the
                     union of the mounted file system root and the existing
                     directory.  Lookups will be done in the mounted file sys-
                     tem first.  If those operations fail due to a non-exis-
                     tent file the underlying directory is then accessed.  All
                     creates are done in the mounted file system.


Dit is, afaik, nog niet beschikbaar op linux.

  • smokalot
  • Registratie: Juni 2001
  • Laatst online: 15-01 22:00

smokalot

titel onder

Volgens mij wordt het overlay genoemd, en er bestaat geen serieuze implementatie voor linux volgens mij.

Als je met google zoekt op "mount linux overlay" zie je dat er meer mensen zijn met het probleem.

It sounds like it could be either bad hardware or software


  • frim
  • Registratie: Augustus 2001
  • Niet online
.. Denk ik nou te stom of kun je niet gewoon die disks gelijk in een apart root mounten?

  • igmar
  • Registratie: April 2000
  • Laatst online: 31-01 23:50

igmar

ISO20022

frim schreef op 18 oktober 2004 @ 11:23:
.. Denk ik nou te stom of kun je niet gewoon die disks gelijk in een apart root mounten?
Nee, want dan is alleen de inhoud van de laatst gemounte dir zichtbaar.

Verwijderd

Ik zie niet het probleem van het gewoon mounten van de partities in vooraf vastgestelde directories, wat frim ook voorstelde. Maak dus wel van te voren de directories aan waar je ze op wilt mounten (mount point).

code:
1
2
3
for i in 1 2 3 4; do 
    mkdir /dest/sub$i
done


Hierna mount je dus de verschillende partities op de zojuist aangemaakte directories.
code:
1
mount /dev/hdXY /dest/sub1

etc.

  • frim
  • Registratie: Augustus 2001
  • Niet online
je kan ook een soort script maken ala

code:
1
2
3
4
#!/bin/bash
mountpoint= `echo $1 | sed -n 's,.*/\(.*\)$,\1,p'`
mkdir /dest/$mountpoint
mount $1 /dest/$mountpoint


zodat de hd altijd dezelfde mountpoint krijg en deze ook wordt gemaakt.

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
het probleem is dat zo'n map meer dan 1000 submappen bevat.
Dan wordt mounten een beetje een probleem.

Maar mijn eerder genoemde scriptje werkt als een trein hoor, de enduser ziet gewoon de gemerge-de tree's.

Wat mij betreft is het opgelost.
Pagina: 1