История изменений
Исправление 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-подобных системах дата создания файла обычно не записывается.
Если вам нужна дата создания и она доступна в вашей файловой системе, код скрипта потребуется изменить соответствующим образом.