Intereting Posts
Включить спящий режим в Ubuntu 13.04 – редактирование hibernate.pkla не работает Есть ли проект, который побуждает школы использовать Ubuntu? ошибка отношения между nova-compute и nova cloud controller Постоянный шум в динамиках и наушниках Как увеличить размер загрузочного раздела, если у меня есть зашифрованный домашний раздел? Не удается запустить новую установку Ubuntu 14.10, показывает панику ядра Автозапуск при загрузке, зависящий от сети ipconfig не работает Как установить программное обеспечение с помощью программного обеспечения Ubuntu Software Center? Установка Google Планета Земля x64 (Xenial) lsb-core Как динамически получать имя, версию и другую информацию из приложения Python во время выполнения Есть ли какая-либо программа, которая отображает все аппаратные средства? Видеокарта не обнаружена в Steam на вине Аудиоприложения не воспроизводятся 14.04 Как открыть папку с приложением в nautalius?

date: дополнительный операнд ‘+% s’

Я столкнулся с небольшой ошибкой, которая не вредит моей программе за использование, но приносит ее в обход. Он продолжает давать мне ошибку:

date: extra operand '+%s' 

Кажется, это действительно влияет на скорость процесса обработки, что связано с тем, что я планирую удалить сотни тысяч файлов журналов. Вот эта программа:

 #!/bin/bash # Usage: ./s3DeleteByDate "bucketname" "2m" aws s3 ls s3://$1 | grep " DIR " -v | while read -r line; do createDate=$(echo "$line" | awk '{print $1" "$2}') createDate=`date -d "%Y-%m-%d %H:%M" "$createDate" +%s` olderThan=`date -d $2 +%s` if [[ $createDate -lt $olderThan ]] then fileName=`echo $line|awk {'print $4'}` if [[ $fileName != "" ]] then aws s3 rm s3://$1"$fileName" --exclude "*" --include "*.tmp" fi fi done; 

В этой строке есть два спецификатора формата:

 createDate=`date -d "%Y-%m-%d %H:%M" "$createDate" +%s` 

Предположительно, вы хотели форматировать $createDate используя:

 createDate=`date -d "$createDate" +"%Y-%m-%d %H:%M"` 

или же:

 createDate=`date -d "$createDate" +%s` 

Мои деньги находятся на втором, так как позже вы используете численное сравнение в вашем if .

Я изменил строку 7 на: date +% s -d “$ createDate”.
Это работает, потому что это дата GNU, которая не позволяет указать формат ввода для даты. Это исправляет ошибку.