найти файлы .sql и .sql.gz с помощью команды find

У меня есть код сценария оболочки, который находит файлы .sql.gz и перемещает их:

find $Dir -type f -mtime $Time -name \*sql.gz | while read file
do
    echo "Earlier $file will be moved to different folder." >> $Path_Log_File
    mv -f $file $Path_Folder
done

Теперь у меня есть еще несколько файлов с расширением .sql, так как я могу изменить свой выше код так он также включает это расширение файла. Спасибо.

1
задан 28 February 2014 в 11:36

1 ответ

Просто используйте оператор «-or»:

#Find and Move backup files older than the time constraint defined
find $Path_Backup_Dir -type f -mtime $Time \( -name *sql.gz -or -name *sql \) | while read file
do
    echo "Earlier Backup $file will be moved to archive folder." >> $Path_Log_File
    mv -f $file $Path_Mysql_Archive
done

Вы можете сделать все с помощью одной команды:

find $Path_Backup_Dir -type f \( -name *.sql -or -name *.sql.gz \) -exec mv -f -v {} /tmp/test2 \; >> $Path_Log_File
2
ответ дан 24 May 2018 в 14:39
  • 1
    Это дает ошибку: find: paths must precede expression: 01-09-2013.tar.gz Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression] – Tarun 12 December 2013 в 12:02
  • 2
    У вас есть пробелы на вашем пути? Выбери их '\' или используйте двойную цитату, найдите " $ Path_Backup_Dir " – Quentin 16 December 2013 в 02:57
  • 3
    нет, нет символа пробела, например /backup/dump/database/11-12-2013.sql. – Tarun 16 December 2013 в 11:49

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

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