[Linux]Alle folders in een folder verplaatsen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • HyperBart
  • Registratie: Maart 2006
  • Laatst online: 07:44
Ik voer op dit moment het volgende uit:

bart@pyro:~$ find /home/bart/test/* -type d -exec mv {} /home/bart/video_nas_temp/SubsToBeFound/Movies \;
find: `/home/bart/test/test1': No such file or directory
find: `/home/bart/test/test2': No such file or directory
find: `/home/bart/test/test3': No such file or directory
find: `/home/bart/test/test4': No such file or directory
find: `/home/bart/test/test5': No such file or directory


Terwijl ze wel bestaan (na dit commando natuurlijk niet meer, omdat ze gemoved zijn) en ze worden effectief gemoved, maar waarom krijg ik nog NSFOD's?

Acties:
  • 0 Henk 'm!

  • Semyon
  • Registratie: April 2001
  • Laatst online: 04:30
Omdat de parent-directory al gemoved is en je dan subdirs nog wilt beetpakken, maar die staan nu dus ergens anders, want je hebt hun parent verplaatst?

[ Voor 16% gewijzigd door Semyon op 02-05-2011 13:50 ]

Only when it is dark enough, can you see the stars


Acties:
  • 0 Henk 'm!

  • mace
  • Registratie: Juni 2003
  • Laatst online: 05-10 15:53

mace

Sapere Aude

Klopt. Je moet -maxdepth gebruiken anders probeert hij de subdirs te moven maar de parent is al moved dus dat gaat niet.

Acties:
  • 0 Henk 'm!

  • HyperBart
  • Registratie: Maart 2006
  • Laatst online: 07:44
Wel beetje "stom" dat hij het ook doet als er geen subfolders zijn...

Acties:
  • 0 Henk 'm!

  • mace
  • Registratie: Juni 2003
  • Laatst online: 05-10 15:53

mace

Sapere Aude

HyperBart schreef op maandag 02 mei 2011 @ 14:13:
Wel beetje "stom" dat hij het ook doet als er geen subfolders zijn...
Nee. Je maait het gras voor z'n voeten weg. Hij zoekt éérst de boel op, en daarna gaat hij de commando's uitvoeren.

Of begrijp ik je verkeerd?

[ Voor 4% gewijzigd door mace op 02-05-2011 14:28 ]


Acties:
  • 0 Henk 'm!

  • benoni
  • Registratie: November 2003
  • Niet online
man find:

     -d      The -d option causes find to perform a depth-first traversal,
             i.e., directories are visited in post-order and all entries in a
             directory will be acted on before the directory itself.  By
             default, find visits directories in pre-order, i.e., before their
             contents.  Note, the default is not a breadth-first traversal.


Zou dat helpen?

Acties:
  • 0 Henk 'm!

  • Semyon
  • Registratie: April 2001
  • Laatst online: 04:30
Lijkt me niet, als je een directory met subdirectories wilt verplaatsen hoef je alleen de parent te verplaatsen. Als je eerst de sub dirs ergens wilt gaan neerzetten, waar? De parent bestaat nog niet...
HyperBart schreef op maandag 02 mei 2011 @ 14:13:
Wel beetje "stom" dat hij het ook doet als er geen subfolders zijn...
Kan je hier een voorbeeld van geven? In je voorbeeld van je openings post, is "test" de parent en "test1" een subdir
Als je eerst /home/bart/test naar een andere plek heb veranderd, zeg /x
dan heb je dus nu /x/test, maar ookal /x/test/test1 en x/test/test2, die zijn mee verhuisd, /home/bart/test/test1 bestaat dus ook niet meer, die probeer je vervolgens te pakken en dat geeft dan een error. Alleen de parents verplaatsen is genoeg.

Kan je een voorbeeld geven van een NSFOD met maar een dir? als je denkt dat het daar ook fout gaat?

Only when it is dark enough, can you see the stars


Acties:
  • 0 Henk 'm!

  • HyperBart
  • Registratie: Maart 2006
  • Laatst online: 07:44
Semyon schreef op dinsdag 03 mei 2011 @ 04:28:
[...]


Lijkt me niet, als je een directory met subdirectories wilt verplaatsen hoef je alleen de parent te verplaatsen. Als je eerst de sub dirs ergens wilt gaan neerzetten, waar? De parent bestaat nog niet...


[...]


Kan je hier een voorbeeld van geven? In je voorbeeld van je openings post, is "test" de parent en "test1" een subdir
Als je eerst /home/bart/test naar een andere plek heb veranderd, zeg /x
dan heb je dus nu /x/test, maar ookal /x/test/test1 en x/test/test2, die zijn mee verhuisd, /home/bart/test/test1 bestaat dus ook niet meer, die probeer je vervolgens te pakken en dat geeft dan een error. Alleen de parents verplaatsen is genoeg.

Kan je een voorbeeld geven van een NSFOD met maar een dir? als je denkt dat het daar ook fout gaat?
Ik had iets verkeerd gelezen :( nevermind dus :X

Acties:
  • 0 Henk 'm!

  • HyperBart
  • Registratie: Maart 2006
  • Laatst online: 07:44
Nu krijg ik (en dat kreeg ik volgens mij voorheen niet):

bart@pyro:~$ find /home/bart/downloads/complete/Movies/* -maxdepth 0 -type d -exec mv {} /home/bart/video_nas_temp/SubsToBeFound/Movies \;
mv: inter-device move failed: `/home/bart/downloads/complete/Movies/Big Mommas Like Father Like Son 2011 BluRay 1080p DTS x264 CHD' to `/home/bart/video_nas_temp/SubsToBeFound/Movies/Big Mommas Like Father Like Son 2011 BluRay 1080p DTS x264 CHD'; unable to remove target: Is a directory

Acties:
  • 0 Henk 'm!

  • magistus
  • Registratie: December 2001
  • Laatst online: 28-09 11:57
zet er ook eens mindepth bij?
dus:
code:
1
find /home/bart/test/ -mindepth 1 -maxdepth 1 -type d

Zoals je ziet is die * weg en die -exec laat ik met opzet ff weg zodat je kan zien op welke dirs find precies een actie gaat uitvoeren als je die -exec er wel weer aan plakt. Kan vast netter, maar daarvoor is de man page ;)
Pagina: 1