特定のファイル拡張子を持つすべてのファイルをサブディレクトリから単一のディレクトリに移動する方法

特定のファイル拡張子を持つすべてのファイルをサブディレクトリから単一のディレクトリに移動する方法

多くのサブディレクトリがあるディレクトリがあります。サブディレクトリには、さまざまなファイル拡張子を持つさまざまな種類のファイルが含まれています。ある種類のすべてのファイルを新しいディレクトリに移動(コピーしない)したいと思います。これらのファイルはすべて同じディレクトリになければなりません。つまり、フラットでなければなりません。

(私のユースケースは、*.epubという名前の電子ブックを複数のディレクトリからEPUBリーダーが見つけることができる単一のフォルダに移動したいことです。)

ベストアンサー1

zsh では再帰グローブを使用できます。

mkdir ~/epubs
mv -- **/*.epub ~/epubs/

bash ≥ 4で実行shopt -s globstar(これを入れることができます~/.bashrc)してから、上記のコマンドを実行します。 kshでset -o globstar最初に実行します。

POSIX ツールのみを使用して、以下を実行しますfind

find . -name '*.epub' -exec mv {} ~/epubs \;

おすすめ記事