最初の文字に基づいてディレクトリをサブディレクトリに移動します。

最初の文字に基づいてディレクトリをサブディレクトリに移動します。

ディレクトリを別の場所に移動し、最初の文字に基づいてサブディレクトリに移動したいと思います。例: ./alpha は /otherdir/a/ に移動します。 ./beta は /otherdir/b/ に移動します。すべてのサブディレクトリが作成され固定されたセットであるため、そのサブディレクトリを確認または作成することを心配する必要はありません。私が使用したい結果は、 find . -type d -name "[a-z*]" 実行時に find . -type d -name "[a-z*]" | xargs mv -t /dest/すべてのディレクトリが移動されますが、もちろんサブディレクトリに移動されるわけではありません。コンポーネントの2番目のパラメータを使用して、/dest/first character here/各ディレクトリ名の最初の文字を渡すことができるかどうかわかりません。これを行う方法はありますか、それともa)ディレクトリリストを作成し、b)ディレクトリ名と最初の文字を移動コマンドに渡す他の方法はありますか?

ベストアンサー1

使用する理由はありませんfind(ディレクトリの数が膨大でない限り)。

dest_root='/otherdir'
for dir in [a-z]*; do
    [ -d "${dir}" ] && mv "${dir}" "${dest_root}/${dir:0:1}"
done

おすすめ記事