Создание файлов:
for i in {1..200}; do touch $i.gz; done
Затем запустите:
#!/bin/bash
for filename in *.gz; do
file="${filename%.*}"
mkdir $file
mv $filename ./$file
done
Это извлекает имя файла без расширения - создает каталог и перемещает файл.
edit : Согласно вашему комментарию, я не знаю, что вы делаете неправильно:
[vagrant@Tools-18 zips]$ touch sam1_1.gz
[vagrant@Tools-18 zips]$ touch sam1_2.gz
[vagrant@Tools-18 zips]$ touch sam2_2.gz
[vagrant@Tools-18 zips]$ touch sam2_1.gz
[vagrant@Tools-18 zips]$ bash 1.sh
[vagrant@Tools-18 zips]$ ls -lrth
total 4.0K
-rw-rw-r--. 1 vagrant vagrant 104 Feb 7 16:05 1.sh
drwxrwxr-x. 2 vagrant vagrant 23 Feb 7 16:30 sam1_1
drwxrwxr-x. 2 vagrant vagrant 23 Feb 7 16:30 sam1_2
drwxrwxr-x. 2 vagrant vagrant 23 Feb 7 16:30 sam2_1
drwxrwxr-x. 2 vagrant vagrant 23 Feb 7 16:30 sam2_2
[vagrant@Tools-18 zips]$ ls ./sam2_2/
sam2_2.gz
окончательное редактирование2:
[vagrant@Tools-18 script]$ cat 1.sh
#!/bin/bash
zipdir=/home/vagrant/zips
move_to_dir=/home/vagrant/new_directory
cd $zipdir
for filename in *.gz; do
file="${filename%.*}"
echo "making directory: $move_to_dir/$file"
mkdir -p $move_to_dir/$file
echo "moving $filename to $move_to_dir/$file/"
mv $filename $move_to_dir/$file/
done
[vagrant@Tools-18 script]$ ls /home/vagrant/zips
sam100_1.gz sam115_1.gz sam130_1.gz sam145_1.gz sam161_1.gz sam176_1.gz sam19_1.gz sam26_1.gz sam4_1.gz sam57_1.gz sam72_1.gz sam88_1.gz
sam101_1.gz sam116_1.gz sam131_1.gz sam146_1.gz sam16_1.gz sam177_1.gz sam192_1.gz sam27_1.gz sam42_1.gz sam58_1.gz sam73_1.gz sam89_1.gz
sam10_1.gz sam117_1.gz sam13_1.gz sam147_1.gz sam162_1.gz sam178_1.gz sam193_1.gz sam28_1.gz sam43_1.gz sam59_1.gz sam74_1.gz sam90_1.gz
sam102_1.gz sam118_1.gz sam132_1.gz sam148_1.gz sam163_1.gz sam179_1.gz sam194_1.gz sam29_1.gz sam44_1.gz sam60_1.gz sam75_1.gz sam91_1.gz
sam103_1.gz sam119_1.gz sam133_1.gz sam149_1.gz sam164_1.gz sam180_1.gz sam195_1.gz sam30_1.gz sam45_1.gz sam61_1.gz sam76_1.gz sam9_1.gz
sam104_1.gz sam1_1.gz sam134_1.gz sam150_1.gz sam165_1.gz sam181_1.gz sam196_1.gz sam31_1.gz sam46_1.gz sam6_1.gz sam77_1.gz sam92_1.gz
sam105_1.gz sam120_1.gz sam135_1.gz sam151_1.gz sam166_1.gz sam18_1.gz sam197_1.gz sam3_1.gz sam47_1.gz sam62_1.gz sam78_1.gz sam93_1.gz
sam106_1.gz sam121_1.gz sam136_1.gz sam15_1.gz sam167_1.gz sam182_1.gz sam198_1.gz sam32_1.gz sam48_1.gz sam63_1.gz sam79_1.gz sam94_1.gz
sam107_1.gz sam12_1.gz sam137_1.gz sam152_1.gz sam168_1.gz sam183_1.gz sam199_1.gz sam33_1.gz sam49_1.gz sam64_1.gz sam80_1.gz sam95_1.gz
sam108_1.gz sam122_1.gz sam138_1.gz sam153_1.gz sam169_1.gz sam184_1.gz sam200_1.gz sam34_1.gz sam50_1.gz sam65_1.gz sam81_1.gz sam96_1.gz
sam109_1.gz sam123_1.gz sam139_1.gz sam154_1.gz sam170_1.gz sam185_1.gz sam20_1.gz sam35_1.gz sam51_1.gz sam66_1.gz sam8_1.gz sam97_1.gz
sam110_1.gz sam124_1.gz sam140_1.gz sam155_1.gz sam171_1.gz sam186_1.gz sam21_1.gz sam36_1.gz sam5_1.gz sam67_1.gz sam82_1.gz sam98_1.gz
sam111_1.gz sam125_1.gz sam141_1.gz sam156_1.gz sam17_1.gz sam187_1.gz sam2_1.gz sam37_1.gz sam52_1.gz sam68_1.gz sam83_1.gz sam99_1.gz
sam11_1.gz sam126_1.gz sam14_1.gz sam157_1.gz sam172_1.gz sam188_1.gz sam22_1.gz sam38_1.gz sam53_1.gz sam69_1.gz sam84_1.gz
sam112_1.gz sam127_1.gz sam142_1.gz sam158_1.gz sam173_1.gz sam189_1.gz sam23_1.gz sam39_1.gz sam54_1.gz sam70_1.gz sam85_1.gz
sam113_1.gz sam128_1.gz sam143_1.gz sam159_1.gz sam174_1.gz sam190_1.gz sam24_1.gz sam40_1.gz sam55_1.gz sam71_1.gz sam86_1.gz
sam114_1.gz sam129_1.gz sam144_1.gz sam160_1.gz sam175_1.gz sam191_1.gz sam25_1.gz sam41_1.gz sam56_1.gz sam7_1.gz sam87_1.gz
[vagrant@Tools-18 script]$ ls /home/vagrant/new_directory
lsmaking directory: /home/vagrant/new_directory/sam99_1
moving sam99_1.gz to /home/vagrant/new_directory/sam99_1/
[vagrant@Tools-18 script]$ ls /home/vagrant/new_directory/sam99_1/
sam99_1.gz
[vagrant@Tools-18 script]$
: cannot access /home/vagrant/new_directory: No such file or directory
[vagrant@Tools-18 script]$ bash 1.sh
making directory: /home/vagrant/new_directory/sam100_1
moving sam100_1.gz to /home/vagrant/new_directory/sam100_1/
...
making directory: /home/vagrant/new_directory/sam99_1
moving sam99_1.gz to /home/vagrant/new_directory/sam99_1/
[vagrant@Tools-18 script]$ ls /home/vagrant/new_directory/sam99_1/
sam99_1.gz