I am trying to copy specific subdirectories (and the files contained in them) to a new directory. Assuming I am in the first directory (dir0/), this contains a number of subdirectories named 000/, 001/, 002/, ... and so on. Each of these subdirectories contains 1000 sub-subdirectories, with files inside them. One example could be: dir0/000/aaa/file1.txt or dir0/001/bbb/file2.txt.

I have a .txt file containing a list of the subdirectories to copy (I only have the name of the subdirectories, not the full path), so, for the example above, my txt file will contain this information:


Is there a way to copy all the subdirectories whose names are included in the txt file to a new directory using bash or python?

Thank you for your help. I am new to both bash and python.

  • What should happen if you have dir0/000/aaa/ and also dir0/018/aaa/? Or can you be 100% sure that all the names in your text file will be unique?
    – terdon
    Commented May 20, 2020 at 17:33
  • the names in the text files are unique
    – ginopino
    Commented May 20, 2020 at 17:35

1 Answer 1


Assuming that, as you said in the comments, the names in the text file are unique, that there will only be one subdirectory with that name in the entire directory tree, then you can simply do (in bash):

while read -r dirName; do
    cp -r dir0/*/"$dirName"/ /path/to/newTargetDir
done < listOfDirs.txt

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .