Сортировка файлов в подпапки в соответствии с именем [script]

У меня есть несколько файлов, которые были восстановлены из резервной копии, но имеют структуру (расположение файла) как имя файла.

например:

C\Users\Welcome\Desktop\Doc1.docx
F\New folder\concerts\0904M002.WAV

Я хочу сделать скрипт, который берет эти имена по одному и создает соответствующие папки и помещает файл в папку.

например: F\New folder\concerts\0904M002.WAV

--> Создать папку "F" в текущем каталоге, затем cd в F создать папку "New folder", аналогично создать "concerts" (или напрямую mkdir F\New folder\concerts)

--> переименовать файл "F\New folder\concerts\0904M002. WAV " в "0904M002.WAV " и переместите его во вновь созданную папку "F\New folder\concerts\"

Может кто-нибудь помочь мне со скриптом? Спасибо

2
задан 13 October 2016 в 10:38

1 ответ

Используйте следующий сценарий удара.

#!/bin/bash
for file in *\\*
do 
    destFile="${file//\\/\/}"
    destFolder="${destFile%/*}"
    [ -d "$destFolder" ] || mkdir -p "$destFolder"
    mv -v "$file" "$destFile"
done

код в основном заменяет весь \ в исходном файле с / для получения целевого пути к файлу. Затем это получает целевой каталог файла и создает его с помощью mkdir -p. Наконец файл копируется в папку назначения.

Пишут код в файл (давайте скажем script.sh), и затем в терминале делают

$ chmod +x script.sh
$ ./script.sh
3
ответ дан 2 December 2019 в 02:49

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

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