GNU/Linux >> Znalost Linux >  >> Linux

Jak použít příkaz find k odstranění souborů odpovídajících vzoru?

Řešení 1:

Obecně to zjišťuji pomocí -exec možnost pro find aby to bylo jednodušší a méně matoucí. Zkuste toto:

find . -name vmware-*.log -exec rm -i {} \;

Vše po -exec je považován za příkaz, který se má spustit pro každý výsledek až do ; , který je zde escapován, takže bude předán do find . {} je nahrazeno názvem souboru find se normálně vytiskne.

Jakmile ověříte, že dělá to, co chcete, můžete odstranit -i .

Řešení 2:

Pokud máte GNU find můžete použít -delete možnost:

find . -name "vmware-*.log" -delete

Chcete-li použít xargs a vyhněte se problému s mezerami v názvech souborů:

find . -name vmware-*.log -print0 | xargs -0 rm

Vaše soubory protokolu by však neměly mít v názvech mezery. Dokumenty pro zpracování textu a soubory MP3 je pravděpodobně obsahují, ale měli byste být schopni ovládat názvy souborů protokolu.

Řešení 3:

Můžete říct find k vymezení výstupního seznamu hodnotami NULL a xargs získat jeho seznam vstupů stejný:

$ ls -l "file 1" "file 2"
-rw-r--r-- 1 james james 0 Oct 19 13:28 file 1
-rw-r--r-- 1 james james 0 Oct 19 13:28 file 2

$ find . -name 'file *' -print0 | xargs -0 ls -l
-rw-r--r-- 1 james james 0 Oct 19 13:28 ./file 1
-rw-r--r-- 1 james james 0 Oct 19 13:28 ./file 2

$ find . -name 'file *' -print0 | xargs -0 rm -v
removed `./file 2'
removed `./file 1'

Také se ujistěte, že jste zakódovali * , buď se zpětným lomítkem, nebo pomocí vmware-*.log v jednoduchých uvozovkách, jinak se jej váš shell může pokusit rozšířit, než jej předá na find .

Řešení 4:

Nezapomeňte na -delete nálezu volba. Odebere soubor bez chyby se speciálními znaky...


Linux
  1. Jak vyhledávat v konkrétních souborech odpovídajících vzoru?

  2. Jak najít soubory pomocí příkazu fd v Linuxu

  3. Jak používat příkaz rpm2cpio v Linuxu

  1. Jak zjistit počet souborů v adresáři a podadresářích

  2. Jak odstranit OBROVSKÉ (100-200 GB) soubory v Linuxu

  3. Jak používat příkaz Grep k vyhledání textu v souborech

  1. Jak používat Linuxový příkaz find k hledání souborů

  2. Jak používat regex s příkazem find?

  3. Odstraňte odpovídající soubory ve všech podadresářích