Directory

在一個目錄中移動多個目錄 - 遞歸

  • August 19, 2019

我有一個目錄,其中包含多個目錄,也包括子目錄。我想同時將其中一些移動到一個(使用一個命令)

例子

Main Directory
    Sub1
       Subsub1
       Subsub2
    Sub2
       Subsub1
       Subsub2
    Sub3
       Subsub1
       Subsub2
    Sub4
       Subsub1
       Subsub2
    Sub5
       Subsub1
       Subsub2
    Test
-----------------------

我想將 Sub1、Sub2、Sub3 包括它們的子目錄移動到 Test 文件夾中,所以最後我會有這樣的東西

Main Directory
    Sub4
       Subsub1
       Subsub2
    Sub5
       Subsub1
       Subsub2
    Test
        Sub1
            Subsub1
            Subsub2
        Sub2
            Subsub1
            Subsub2
        Sub3
            Subsub1
            Subsub2
-----------------------

假設"Main Directory"/Test存在:

mv "Main Directory"/Sub[1-3] "Main Directory"/Test

這裡唯一發生的事情是將目錄移動到Test目錄中。Sub1,Sub2和中的文件Sub3仍然在這些相同的目錄中可用,但現在在新路徑"Main Directory"/Test/Sub1等下。


使用下面評論中的更新資訊,假設bash用作外殼:

mkdir -p "Main Directory"/Test
mv "Main Directory"/episode_{0000..0049} "Main Directory"/Test

大括號擴展"Main Directory"/episode_{0000..0049}將擴展為Main Directory/episode_0000 Main Directory/episode_0001Main Directory/episode_0049

您也可以-t在命令中使用 flag來執行此操作mv

語法如下所示。

mv -t <destination> <src1> <src2> .... <srnN>

您也可以以相反的方式執行此操作:

mv file1 file2 file3 -t DESTINATION

在您的情況下將是:

mv -t Test/ Sub1/ Sub2/ Sub3/

資料來源:DevopsCube / AskUbuntu

引用自:https://unix.stackexchange.com/questions/454453