[Solved]Linux del folder
Captain Kirk 14.05.2014 - 07:44 2387 3
Captain Kirk
Fanboy von sich selbst
|
Moin, Ich hab nach dem Datentransfer vom alten Synology zum neuen QNAP Nas in so ziemlich jedem Ordner den System(?) Ordner @eaDir. Die würd ich gern löschen, meine (recht kleinen) Linux Kenntnisse reichen hier aber scheinbar nicht aus. was bisher geschah: ![:)](/images/smilies/smile.gif) find /share/MD0_DATA/ -type d -name @eaDir |xargs rm -rf Haut irgendwie nicht hin. Wenn ich danach ein find mache find ich immer noch folder... tia! edit: mir wurde schon geholfen. wohl etwas zu früh geschossen mit einem thread. find /share/MD0_DATA/ -type d -name "@eaDir" | tr "\n" "\000" | xargs -0 rm -rf
Bearbeitet von Captain Kirk am 14.05.2014, 09:09
|
-=Willi=-
The Emperor protects
|
For the record: find /share/MD0_DATA/ -type d -name "@eaDir" -exec rm -r {} \;
würde auch gehen. Imho schöner als die "\n"s rauszureißen ![:)](/images/smilies/smile.gif) .
|
Captain Kirk
Fanboy von sich selbst
|
das habe ich auch versucht aber das -exec scheint das qnap nicht zu checken
|
COLOSSUS
AdministratorGNUltra
|
"-exec" ist POSIX, und wird garantiert von jeder `find`-Implementation unterstuetzt. Vermutlich hast du einen Syntaxfehler eingebaut. Der "Trick", via `tr` \n durch \0 ersetzen zu lassen, ist unnoetig bzw. sogar falsch. Wenn man wirklich so arbeiten muss (Pfadnamen via `find` an irgendeinen consumer zu pipen, der \0-Bytes als Trennzeichen erwartet - so wie etwa `xargs` mit dem "-0"-Switch) so kann man die "-print0"-Direktive von `find` nutzen: $ find . -maxdepth 1 -iname ".bash*" -print0 | xxd
0000000: 2e2f 2e62 6173 685f 6869 7374 6f72 7900 ./.bash_history.
0000010: 2e2f 2e62 6173 685f 6c6f 676f 7574 002e ./.bash_logout..
0000020: 2f2e 6261 7368 5f70 726f 6669 6c65 002e /.bash_profile..
0000030: 2f2e 6261 7368 7263 002e 2f2e 6261 7368 /.bashrc../.bash
0000040: 5f61 6c69 6173 6573 00 _aliases.
Eine bessere Variante als die von -=Willi=- (und die imho optimale Loesungsvariante des Problems mittels `find`) ist uebrigens: find /share/MD0_DATA/ -type d -a -name '@eaDir' -prune -exec rm -rf {} +
|