
我有一個名為「public」的目錄,其中包含一千個子目錄,例如:
public/63a/e9b/79a/file.pdf
public/64a/2cd/184/other_file.pdf
...
我的目標是將這些子目錄中包含的所有檔案移到主目錄(即:public)中。
我想我需要一個遞歸函數來做到這一點。
有人能幫我嗎 ?
答案1
執行此操作的工具已經是標準 Linux 環境的一部分:
find public -type f -exec mv {} public/ \;
解釋:
我們想要find
文件而不是目錄 ( -type f
)public
及其子結構,並且在每個找到的文件上執行 ( -exec
) 一個命令,該命令是將其(由 表示{}
)移動到公共。
轉義的分號僅標記序列的結束-exec
。