
「public」というディレクトリがあり、そこには 1000 個のサブディレクトリが含まれています。例:
public/63a/e9b/79a/file.pdf
public/64a/2cd/184/other_file.pdf
...
私の目的は、これらのサブディレクトリに含まれるすべてのファイルをメイン ディレクトリ (つまり、public) に移動することです。
そのためには再帰関数が必要だと思います。
誰か助けてくれませんか?
答え1
そのためのツールはすでに標準の Linux 環境の一部になっています。
find public -type f -exec mv {} public/ \;
説明:
ディレクトリ ( )find
ではなく、ファイルとそのサブ構造にアクセスし、見つかった各ファイルに対してコマンド ( ) を実行して、そのファイル ( で表される) を public に移動する操作を行います。-type f
public
-exec
{}
エスケープされたセミコロンは、シーケンスの終わりを示すだけです-exec
。