Похоже, что файловая система на USB-накопителе не распознана или повреждена (неотформатирована ). Поскольку данные вам не нужны, просто -отформатируйте их и проверьте на наличие плохих блоков с помощью mkfs.vfat -c /dev/sdg
. Это уничтожит все данные на вашем USB-диске . Не забудьте проверить это с помощью dmesg, вы получите то же самое [sdg]
устройство, созданное после его подключения.
Это сделает его совместимым как с системами Windows, так и с Linux, так как он будет отформатирован как FAT32. Вы можете создать любую файловую систему, поддерживаемую вашим дистрибутивом, с помощьюmkfs -t...
(см.man mkfs
).
И ещё версия на Питоне (3):
import os
sourcepath='/path/to/source'
destination='/path/to/destination'
(_,_,fnames) = next(os.walk(sourcepath))
for f in fnames:
subpath = '/'.join(f.split('_')[:-1])
print("Moving {} to {}".format(os.path.join(sourcepath, f), os.path.join(destination, subpath, f)))
os.makedirs(os.path.join(destination, subpath), exist_ok=True)
os.rename(os.path.join(sourcepath, f), os.path.join(destination, subpath, f))
Это кажется самым простым и выполняет свою работу. (Я проверил ). Все, что мы делаем, это используем старый добрый sed для преобразования текущего имени, чтобы вставить «/» в нужных местах и удалить что-то в нужном месте, чтобы сгенерировать имя каталога.
for i in p*
do
d=$(echo $i | sed -e 's|_n-|/n-|' -e 's|_a-.*||')
mkdir -p $d
mv -i $i $d
done
Как насчет хорошего -вкладыша
ls | awk -F"_" '{system("mkdir -p " $1 "/" $2 "&& mv " $0 " " $1 "/" $2 "/" $0)}'
Разделите разделы имени файла на основе _
создайте необходимые каталоги, а затем переместите неизмененное имя файла во вновь созданный каталог.