root@dwarf /var/spool/clientmqueue # rm spam-*
/bin/rm: Te lange de lijst van het argument.
Ooit gezien deze fout in Linux wanneer u teveel dossiers in een folder hebt en u kunt hen met eenvoudig schrappen niet rm - rf *? Ik heb in dit probleem een paar keer in werking gesteld. Na het doen van een weinig online onderzoek kwam ik over een keurige oplossing rond deze kwestie werken.
vind. - naam „spam-*“ | xargs rm
In de bovengenoemde instantie zal het bevel krachtig alle dossiers in de huidige folder schrappen die met beginnen spam-. U kunt vervangen spam-* met om het even wat houdt van u. U kunt het met enkel a ook vervangen * als u alle dossiers in de omslag wilt verwijderen.
vind. - naam „*“ | xargs rm
Wij hebben behandeld Linux vindt bevel zeer gedetailleerd vroeger. Xargs is bevel Linux dat het overgaan van een aantal argumenten tot een gemakkelijker bevel maakt.

























{ 2 comments… read them below or add one }
Safe variant for filenames with spaces, new lines and other whitespace characters:
find . -name ‘*’ -print0 | xargs -o rm
Good catch using the print0 option, that’s an important one.
Most find commands do not require the “-name” predicate. What’s usually more important is to make sure you’re deleting *files* and not something else you might not have intended. For this use “-type f” inplace of the “-name” option….
find . -type f -print0 | xargs -0 /bin/rm
A) Use the full path to the ‘rm’ command so your aliases don’t muck with things.
B) Check your xargs command, you can sometimes, if needed, tell it to use one “result” at a time, such as (if you didn’t use print0 but regular print) “-l1″
Leave a Comment