Создайте подпапку с тем же именем, что и родительский, и переместите в нее файлы - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть папки, как показано ниже.Я хочу создать подкаталог с тем же именем и переместить только несколько файлов в подкаталог

Ввод

 Parent

   folder1/a.txt
   folder1/b.txt
   folder2/a.txt
   folder2/b.txt
   folder3/a.txt
   folder3/b.txt 


Output

  Parent

  folder1/folder1/a.txt
  folder1/b.txt
  folder2/folder2/a.txt
  folder2/b.txt
  folder3/folder3/a.txt
  folder3/b.txt 

Я пробовал это, но это работает только для файлов, а не папок

       for file in *; do dir=$(echo $file | cut -d. -f1); mkdir -p $dir; mv $file $dir; done

1 Ответ

1 голос
/ 17 апреля 2019

Если ваша оболочка bash, вы можете запустить следующее:

for file in */a.txt ; do 
    dir=${file%/a.txt}
    mkdir "$dir/$dir"
    mv "$file" "$dir/$dir"
done

Она использует расширение параметра , чтобы удалить /a.txt из имени файла, которое покидает только каталогимя в $dir.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...