Temukan file yang diakhiri dengan angka


10

Saya mencoba membuat beberapa skrip cadangan saat file log semakin besar. Apa yang saya miliki adalah mengatasi file saat ini, (misalnya securefile dalam /var/log/) dan menghapus konten dari file itu. Tapi ada beberapa file dengan nama seperti: secure.1, secure.2dan semua ini saya ingin menghitungnya, dan jika nomor lebih besar maka 2untuk arsip mereka semua. Saya tidak dapat menemukan metode untuk menemukan file ini atau menghitungnya. Pikiran pertama yang muncul pada saya adalah:

find /var/log/ -name *.1 | wc -l

dan ini akan selalu dicetak 1karena ada satu file secure.1. Bagaimana saya bisa menghitung suka dalam untuk loop di mana saya dapat menentukan rentang angka suka {1..5}atau serupa Apakah ada cara untuk memisahkan file-file ini dan menjadikannya sebagai satu dan mereka membuat cadangan atau menghapus atau apa pun ... atau pertama-tama bagaimana saya dapat menemukan semua angka ini yang berakhir dengan angka.


1
Apakah Anda lupa mengutip wildcard? find /var/log/ -name '*.1' ...
muru

1
Saya pikir Anda harus memeriksa logrotateuntuk tujuan Anda.
Costas

Jawaban:


15

Dengan sederhana -name:

find /var/log -name '*.[2-9]'

atau untuk digit apa pun:

find /var/log -name '*.[[:digit:]]'

atau jika karakter lain dimungkinkan setelah digit:

find /var/log -name '*.[2-9]*'

bagaimana menemukan orang-orang yang HANYA berisi angka dalam nama mereka?
letthefireflieslivelive

3

Untuk menemukan nama file yang diakhiri dengan angka berkisar dari .[1 hingga 5].

find /var/log/ -type f -regextype sed -regex ".*\.[1-5]$"

1

Kenapa tidak ...

for log in /var/log/*.[1-5]
do whatever to "$log"
done

Anda tidak perlu findsejauh yang saya tahu - shell menggunakan gumpalan yang sama di dalamnya -name. Dan jika semua file berada dalam satu direktori ... Tentu saja, jika ada subdirektori yang juga menarik bagi Anda, maka finditu bisa bermanfaat - pohon berjalan di dalam shell bisa menjadi sakit kepala.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.