Több fájlt akarok keresni a find használatával, és mindegyiket törölni akarom a -exec használatával. Megpróbáltam

find ./ -type f -name fileA -o -name fileB -exec rm {} \; 

, de úgy tűnik, hogy ez csak a “fileB” fájlokat távolítja el, nem pedig a fileAs fájlokat.

Megjegyzések

  • Eltávolítja a " fileB , mellesleg.
  • @ Vadkártya Nem egyenesen rm (ez ' megpróbálja, de nem sikerül ).
  • @Kusalananda, ah, jobb.

Válasz

-o a műveletre is vonatkozik, ezért csoportosítania kell a dolgokat:

find ./ -type f \( -name fileA -o -name fileB \) -exec rm {} \; 

BTW, a megvalósítás a -delete -t is támogathatja:

find ./ -type f \( -name fileA -o -name fileB \) -delete 

megjegyzés

  • és ha nem ' t, akkor valószínűleg támogatja a -exec rm {} +

Válasz

Másik alternatíva:

 WARNING: it is possible that due to funny characters in directory names it is possible that unintended files might be deleted. find ./ -type f \( -name fileA -o -name fileB \) -print | xargs rm -f 

Vagy ha lehetséges, elkapja ezeket vicces karakterű fájlok:

 NOTE: On some systems -print0 and -0 options are not available. But this would be the preferred and safer method) find ./ -type f \( -name fileA -o -name fileB \) -print0 | xargs -0 rm -f 

Megjegyzések

  • Tetszik, hogy csaknem egy évvel később tértél vissza, hogy hozzáadjam a fájlnevekről szóló megjegyzést, hogy ' s dedikáció. : D

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük