Hoe te om `/bin/rm op te lossen: De lijst te lange' fout van het argument

door Sukrit Dhandhania op 18 februari, 2009

Linux

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.

Als deze post u hielp, zou ik zijn uiterst dankbaar als u 3 te voltooien minuten (vastgestelde I het) kon vergen dit onderzoek. Als u uw e-mailadres aan het eind van het onderzoek ingaat, zal u in een wedstrijd zijn ingegaan om een $25 USD Amazonië Certificaat van de Gift te winnen. U te hoeven om uw naam of geen e-mailadres (hoewel u niet in de wedstrijd) zult ingegaan worden in te gaan om het onderzoek te voltooien. Geen persoonlijk identificeerbare informatie wordt verzameld. Als u opteert om de wedstrijd in te gaan, zal uw e-mailadres niet wordt verkocht of voor om het even welk soort mededeling, buiten gebruikt om u op de hoogte te brengen als u de wedstrijd won. Na de wedstrijdeinden zullen alle e-mailadressen worden geschrapt. Hartelijk dank vooraf!!
Verwante Posten:
  • Technologie en Levensstijl
  • De Eigenschappen van het Systeem van de Terugwinning van vensters XP
  • Hoe te om de fout 800B0100 op te lossen van de Update van het Uitzicht van Vensters
  • Hoe te om uw machine Linux met netstat te controleren
  • Het overzicht en 10 van Pownce nodigen voor Lezers Simplehelp uit
  • Word elke dag de Eenvoudige leerprogramma's van de Hulp enkel als dit in uw e-mail inbox - kostenloos! Ga enkel uw e-mailadres in hieronder:

    U kunt altijd van dit e-mailabonnement op elk ogenblik uitstappen.

    { 2 comments… read them below or add one }

    1 Ale? Friedl 02.19.09 at 7:16 am

    Safe variant for filenames with spaces, new lines and other whitespace characters:
    find . -name ‘*’ -print0 | xargs -o rm

    2 MikeT 02.19.09 at 6:30 pm

    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

    You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>