
У меня есть папка с примерно 150 текстовыми файлами. Я хотел бы создать папки с именами 150 файлов. После этого я хотел бы переместить текстовый файл в соответствующую папку.
Примеры имен файлов внутри каталога myfolder:
~/myfolder/
|______ ajhaslf.txt
|______ oiueed.txt
|______ dsflije.txt
Какой я хотел бы видеть свою новую структуру:
~/myfolder/
|______ ajhaslf
|____ajhaslf.txt
|______ oiueed
|____oiueed.txt
|______ dsflije
|____dsflije.txt
Конечно, создание каталога с именами файлов для меня не проблема mkdir
.
решение1
@gniourf_gniourfимеет правильную идею:
set -o errexit -o nounset
cd ~/myfolder
for file in *.txt
do
dir="${file%.txt}"
mkdir -- "$dir"
mv -- "$file" "$dir"
done
Это должно быть совместимо с POSIX. Этонетреентерабельный. Он будетнетработает, если у вас есть любые два файла с именами something.txt
и something.txt.txt
.