私は100のサブディレクトリを含むディレクトリAを持っています。これらの各サブディレクトリにはディレクトリが含まれています。
たとえば、100 個のディレクトリのそれぞれにあるこの単一ディレクトリの名前を同じ名前に変更するにはどうすればよいですかX
。コマンドを試しましたが、mmv
運がありません。
どんな助けでも大変感謝します!
ベストアンサー1
より良い方法かもしれませんが、
使用bash
とfind
while IFS= read -r dir; do
mv -- "$dir" "${dir%/*}/X"
done< <(find . -maxdepth 2 -mindepth 2 -type d)
まず、テストを実行してみてください。たとえば、次のようになります。
while IFS= read -r dir; do
printf 'mv "%s" "%s"\n' "$dir" "${dir%/*}/X"
done< <(find . -maxdepth 2 -mindepth 2 -type d)
簡単に言うと:
find
.
デフォルトディレクトリである現在のディレクトリ(通常はA
あなたの場合)type d
(ディレクトリ)最小と最大の深さは2です。
bash
読ん$dir
で次に進みます。find
$dir
${dir%/*}
最後の項目/
とそれ以降の項目の両方を削除/X
新しいディレクトリ名を追加します。
たとえばfind ./A ...
、Aクラスより1レベル下に住んでいる場合は、この評価を使用してください。
オプションで(非POSIX)に追加して実行されたアクションを表示します-v
。mv