[Solved]Linux del folder

Seite 1 von 1 - Forum: Linux and other OS auf overclockers.at

URL: https://www.overclockers.at/linux/solvedlinux-del-folder_238985/page_1 - zur Vollversion wechseln!


Captain Kirk schrieb am 14.05.2014 um 07:44

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: :)
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.

Code:
 find /share/MD0_DATA/ -type d -name "@eaDir" | tr "\n" "\000" | xargs -0 rm -rf


-=Willi=- schrieb am 14.05.2014 um 08:44

For the record:

Code:
find /share/MD0_DATA/ -type d -name "@eaDir" -exec rm -r {} \;
würde auch gehen. Imho schöner als die "\n"s rauszureißen :).


Captain Kirk schrieb am 14.05.2014 um 09:08

das habe ich auch versucht aber das -exec scheint das qnap nicht zu checken


COLOSSUS schrieb am 14.05.2014 um 10:07

"-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:

Code:
$ 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:
Code:
find /share/MD0_DATA/ -type d -a -name '@eaDir' -prune -exec rm -rf {} +




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025