LINUX.ORG.RU

История изменений

Исправление chukcha, (текущая версия) :

Как вам, например, этот скрипт, который мне прислали добрые люди, нет ли в нем ошибок?

#!/bin/bash

# Перебор всех файлов .avi в текущей директории и поддиректориях:
find . -type f -name "*.avi" | while read file; do
    # Получение даты создания файла
    date=$(stat -c %y "$file" | cut -d ' ' -f 1)
    year=$(echo $date | cut -d '-' -f 1)
    month=$(echo $date | cut -d '-' -f 2)
    day=$(echo $date | cut -d '-' -f 3)

    # Создание директории с именем год/месяц/день, если она еще не существует:
    directory="./$year/$month/$day"
    mkdir -p "$directory"

    # Перемещение файла в новую директорию:
    mv "$file" "$directory/"
done
Для использования этого скрипта нужно:

1. Создать файл с расширением `.sh`, например `move_avifiles.sh`.
2. Скопироватьте в него данный код.
3. Дать ему права на выполнение командой `chmod +x move_avifiles.sh`.
4. Запустить скрипт в нужной директории командой `./move_avifiles.sh`.

И учтите, что скрипт использует дату последнего изменения файла, так как в UNIX-подобных системах дата создания файла обычно не записывается.
Если вам нужна дата создания и она доступна в вашей файловой системе, код скрипта потребуется изменить соответствующим образом.

Исходная версия chukcha, :

Как вам, например, этот скрипт, который мне прислали добрые люди, нет ли в нем ошибок?

#!/bin/bash

# Перебор всех файлов .avi в текущей директории и поддиректориях:
find . -type f -name "*.avi" | while read file; do
    # Получение даты создания файла
    date=$(stat -c %y "$file" | cut -d ' ' -f 1)
    year=$(echo $date | cut -d '-' -f 1)
    month=$(echo $date | cut -d '-' -f 2)
    day=$(echo $date | cut -d '-' -f 3)

    # Создание директории с именем год/месяц/день, если она еще не существует:
    directory="./$year/$month/$day"
    mkdir -p "$directory"

    # Перемещение файла в новую директорию:
    mv "$file" "$directory/"
done

Для использования этого скрипта нужно:

1. Создать файл с расширением `.sh`, например `move_avifiles.sh`.
2. Скопироватьте в него данный код.
3. Дать ему права на выполнение командой `chmod +x move_avifiles.sh`.
4. Запустить скрипт в нужной директории командой `./move_avifiles.sh`.

И учтите, что скрипт использует дату последнего изменения файла, так как в UNIX-подобных системах дата создания файла обычно не записывается.
Если вам нужна дата создания и она доступна в вашей файловой системе, код скрипта потребуется изменить соответствующим образом.