2

Если у меня есть папка, содержащая различные файлы с одинаковым рисунком, например:

 file1a
 file1b
 file1c
 file2a
 file2b
 file2c
 ...

Есть ли одна строка для разделения их на папки с именем:

file1/file1a, file1b, file1c
file2/file2a, file2b, file2c

Что переменная: количество этих папок.

1 ответ1

2

С циклом for :

for f in file*; do 
  mkdir -p "${f%%[^0-9]}"
  mv -v "$f" "${f%%[^0-9]}/"
done

  • Он зацикливает все файлы в каталоге, начиная с file .
  • mkdir -p создает каталог, если он не существует.
    • ${f%%[^0-9]}: удаляет часть, которая не ^ содержит цифры в конце имени файла; это имя каталога.
  • И, наконец, mv переместить файл в соответствующий каталог.

Дерево каталогов после выполнения:

├── file1
│   ├── file1a
│   ├── file1b
│   └── file1c
└── file2
    ├── file2a
    ├── file2b
    └── file2c

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .