Назад | Перейти на главную страницу

Переместите все файлы в свою папку

Есть ли способ в окне Linux переместить каждый файл в каталоге в свой собственный подкаталог (т.е. создать каталог, названный в его честь, и переместить его)?

Попробуйте этот фрагмент, предполагая, что все, что у вас есть в текущем каталоге, - это файлы (без каталогов):

for file in *
do
  mv "$file" "$file".tmp &&
  mkdir "$file" &&
  mv "$file".tmp "$file"/"$file"
done

В противном случае (проверено только слегка):

find . -maxdepth 1 -type f -exec mv '{}' '{}'.tmp \; -exec mkdir '{}' \; -exec mv '{}'.tmp '{}'/'{}' \;

Это сработало в моем тестовом каталоге с парой файлов с произвольными именами, некоторые из них с пробелами.