Saya mencoba membuat beberapa skrip cadangan saat file log semakin besar. Apa yang saya miliki adalah mengatasi file saat ini, (misalnya secure
file dalam /var/log/
) dan menghapus konten dari file itu. Tapi ada beberapa file dengan nama seperti: secure.1
, secure.2
dan semua ini saya ingin menghitungnya, dan jika nomor lebih besar maka 2
untuk 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 1
karena 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.
find /var/log/ -name '*.1' ...
logrotate
untuk tujuan Anda.Jawaban:
Dengan sederhana
-name
:atau untuk digit apa pun:
atau jika karakter lain dimungkinkan setelah digit:
sumber
Untuk menemukan nama file yang diakhiri dengan angka berkisar dari
.
[1 hingga 5].sumber
Kenapa tidak ...
Anda tidak perlu
find
sejauh 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, makafind
itu bisa bermanfaat - pohon berjalan di dalam shell bisa menjadi sakit kepala.sumber