Найти и удалить папку и файлы внутри

  1. findможет выполнить команду mv самостоятельно, синтаксис для использования:

    find <filter> -exec mv {} <destination>

    Обратите внимание, что:{}будет заменено именем файла, и иногда вам нужно экранировать его таким образом\{\}

  2. Если вы терпимы к башизму, вы можете воспользоваться преимуществами массивов bash и таким образом переписать свой скрипт:

    BASE_PATH="~/Downloads/"
    # 1st element: find filter, 2d element: destination
    EXT_TO_PATH=(
        'a=( "-iname \"*.pdf\" " "PDF" )'
        'a=( "-iname \"*.jpg\" -o -iname \"*.png\" " "Pictures" )'
    )

    for elt in "${EXT_TO_PATH[@]}" ; do
        eval $elt
        echo "Extensions: ${a[0]}"
        echo "Destination: ${a[1]}"
        find $BASE_PATH -maxdepth=1 ${a[0]} -exec mv {} ${BASE_PATH}/${a[1]}
    done
0
20.10.2020, 15:20
0 ответов

Теги

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