.
bashで始まらないディレクトリのすべてのサブディレクトリを移動したいと思います。
たとえば、次のようなディレクトリ構造があるとします。
subdir1/
subdir2/
.idea/
.venv/
このコマンドは特定の宛先subdir1/
にのみ移動する必要があります。subdir2/
答え1
以下を簡単に使用できます。
mv */ ../target_dir/
デフォルトの動作を変更するために bash オプションを明示的に設定しないと、パターンは bash で始まるフォルダーと一致しませ*/
ん (シェルオプションが設定されていない場合).詳しくは、manファイルの使用:を参照してください。.
dotglob
GLOBIGNORE
man bash
答え2
そしてfind
:
find . ! -name '.*' -type d -exec mv -- {} ../target_dir \;
現在のディレクトリだけが必要な場合:
find . -maxdepth 1 ! -name '.*' -type d -exec mv -- {} ../target_dir \;
dotglob
設定方法が安定して期待できません。