Удалите все кроме 2 новейших zip-файлов

Я должен удалить файлы этого типа, за исключением 2 новейших файлов:

Ubuntu_Scripts_2018-08-22-20-00.zip 

которые расположены в

/media/andy/MAXTOR_SDB1/Ubuntu_Mate_18.04/Script_Backups/

Это было обеспечено pa4080. Я хотел бы изменить его с этой целью, если это возможно.

#!/bin/bash
TARGET_DIR='/media/andy/MAXTOR_SDB1/Ubuntu_Mate_18.04/'
REGEX='[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}:[0-9]{2}'   # regular expression that match to: date '+%Y-%m-%d_%H:%M'
LATEST_FILE="$(ls "$TARGET_DIR" | egrep "^${REGEX}$" | tail -1)"
find "$TARGET_DIR" ! -name "$LATEST_FILE" -type f -regextype egrep -regex ".*/${REGEX}$" -exec rm -f {} +

Я использовал #!/bin/bash-xv, чтобы учиться, как он работает.

-1
задан 23 August 2018 в 17:40

1 ответ

# http://www.cs.columbia.edu/~tal/3261/fall07/handout/egrep_mini-tutorial.htm

#REGEX='[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}:[0-9]{2}'   # regular expression that match to: date '+%Y-%m-%d_%H:%M'
#!/bin/bash
TARGET_DIR='/media/andy/MAXTOR_SDB1/Ubuntu_Mate_18.04/Script_Backups/'
REGEX='Ubuntu_Scripts_[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{2}-[0-9]{2}[.]zip' # Ubuntu_Scripts_2018-08-23-10-00.zip

LATEST_FILE="$(ls "$TARGET_DIR" | egrep "^${REGEX}$" | tail -1)"

find "$TARGET_DIR" ! -name "$LATEST_FILE" -type f -regextype egrep -regex ".*/${REGEX}$" -exec rm -f {} +
0
ответ дан 28 October 2019 в 02:31

Другие вопросы по тегам:

Похожие вопросы: