В моем случае @today
$ chmod a-x /etc/cron.weekly/apt-xapian-index
$ echo 'APT::Periodic::Enable "0";' >> /etc/apt/apt.conf.d/10periodic
Мое решение состоит в том, чтобы заглянуть в этот каталог для файлов, а затем выбрать последний:
filename=`find . | sort -t_ -k2 -n | tail -1`
затем показать имя нового файла:
echo ${filename%_*}_$(( ${filename##*_} + 1 ))
let's test it:
$ mkdir test
$ cd test
$ touch file_{1..999}
$ filename=`find . | sort | tail -1`
$ echo $filename
./file_999
Получить имя файла:
$ echo ${filename%_*}
./file
Получить номер +1:
$ echo $(( ${filename##*_} + 1 ))
1000
Слить их:
$ echo ${filename%_*}_$(( ${filename##*_} + 1 ))
./file_1000
Мое решение состоит в том, чтобы заглянуть в этот каталог для файлов, а затем выбрать последний:
filename=`find . | sort -t_ -k2 -n | tail -1`
затем показать имя нового файла:
echo ${filename%_*}_$(( ${filename##*_} + 1 ))
let's test it:
$ mkdir test
$ cd test
$ touch file_{1..999}
$ filename=`find . | sort | tail -1`
$ echo $filename
./file_999
Получить имя файла:
$ echo ${filename%_*}
./file
Получить номер +1:
$ echo $(( ${filename##*_} + 1 ))
1000
Слить их:
$ echo ${filename%_*}_$(( ${filename##*_} + 1 ))
./file_1000
Мое решение состоит в том, чтобы заглянуть в этот каталог для файлов, а затем выбрать последний:
filename=`find . | sort -t_ -k2 -n | tail -1`
затем показать имя нового файла:
echo ${filename%_*}_$(( ${filename##*_} + 1 ))
let's test it:
$ mkdir test
$ cd test
$ touch file_{1..999}
$ filename=`find . | sort | tail -1`
$ echo $filename
./file_999
Получить имя файла:
$ echo ${filename%_*}
./file
Получить номер +1:
$ echo $(( ${filename##*_} + 1 ))
1000
Слить их:
$ echo ${filename%_*}_$(( ${filename##*_} + 1 ))
./file_1000
get_next_release_name()(
filename_base='file_'
# Create array with indices based on the filenames.
for filename in *; do
index="${filename##$filename_base}"
filenames["$index"]="$filename"
done
# Get last item in array and get its index.
filename_highest="${filenames[-1]}"
index_highest="${filename_highest##*_$filename_base}"
# Get highest index + 1.
index_new_highest="$(( $index_highest + 1 ))"
filename_new="${filename_base}${index_new_highest}"
echo "$filename_new"
)
Тест:
# Create test files.
$ mkdir test &&
> cd test
$ touch file_{1..999}
$ get_next_release_name
file_1000
Также, если вы хотите, это эквивалент в Python. Я в основном хотел попробовать и посмотреть, насколько это было бы проще. Оказывается, это примерно так же просто, но гораздо проще (например, меньше работы для получения наивысшего индекса).
import os
filename_base = 'file_'
indices = []
for filename in os.listdir('.'):
index = int(filename.split(filename_base)[1])
indices += [ index ]
index_highest = max(indices)
index_new_highest = index_highest + 1
new_filename = filename_base + str(index_new_highest)
print new_filename
Также менее подробная версия:
import os
f_base = 'file_'
indices = [ int(f.split(f_base)[1]) for f in os.listdir('.') ]
print f_base + str(max(indices) + 1)
get_next_release_name()(
filename_base='file_'
# Create array with indices based on the filenames.
for filename in *; do
index="${filename##$filename_base}"
filenames["$index"]="$filename"
done
# Get last item in array and get its index.
filename_highest="${filenames[-1]}"
index_highest="${filename_highest##*_$filename_base}"
# Get highest index + 1.
index_new_highest="$(( $index_highest + 1 ))"
filename_new="${filename_base}${index_new_highest}"
echo "$filename_new"
)
Тест:
# Create test files.
$ mkdir test &&
> cd test
$ touch file_{1..999}
$ get_next_release_name
file_1000
Также, если вы хотите, это эквивалент в Python. Я в основном хотел попробовать и посмотреть, насколько это было бы проще. Оказывается, это примерно так же просто, но гораздо проще (например, меньше работы для получения наивысшего индекса).
import os
filename_base = 'file_'
indices = []
for filename in os.listdir('.'):
index = int(filename.split(filename_base)[1])
indices += [ index ]
index_highest = max(indices)
index_new_highest = index_highest + 1
new_filename = filename_base + str(index_new_highest)
print new_filename
Также менее подробная версия:
import os
f_base = 'file_'
indices = [ int(f.split(f_base)[1]) for f in os.listdir('.') ]
print f_base + str(max(indices) + 1)
get_next_release_name()(
filename_base='file_'
# Create array with indices based on the filenames.
for filename in *; do
index="${filename##$filename_base}"
filenames["$index"]="$filename"
done
# Get last item in array and get its index.
filename_highest="${filenames[-1]}"
index_highest="${filename_highest##*_$filename_base}"
# Get highest index + 1.
index_new_highest="$(( $index_highest + 1 ))"
filename_new="${filename_base}${index_new_highest}"
echo "$filename_new"
)
Тест:
# Create test files.
$ mkdir test &&
> cd test
$ touch file_{1..999}
$ get_next_release_name
file_1000
Также, если вы хотите, это эквивалент в Python. Я в основном хотел попробовать и посмотреть, насколько это было бы проще. Оказывается, это примерно так же просто, но гораздо проще (например, меньше работы для получения наивысшего индекса).
import os
filename_base = 'file_'
indices = []
for filename in os.listdir('.'):
index = int(filename.split(filename_base)[1])
indices += [ index ]
index_highest = max(indices)
index_new_highest = index_highest + 1
new_filename = filename_base + str(index_new_highest)
print new_filename
Также менее подробная версия:
import os
f_base = 'file_'
indices = [ int(f.split(f_base)[1]) for f in os.listdir('.') ]
print f_base + str(max(indices) + 1)