サブディレクトリを同じディレクトリの別のサブディレクトリに移動するにはどうすればよいですか?

サブディレクトリを同じディレクトリの別のサブディレクトリに移動するにはどうすればよいですか?

ディレクトリがありますdir/。サブディレクトリが含まれていますa。サブディレクトリをサブディレクトリにz移動する必要があります。これが難しい場合は、代わりに移動する必要があるディレクトリのリストを提供してください。ayzaz

Bashでどうすればいいですか?

答え1

支柱の拡張を使用する:http://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html

あなたの場合は、次のことを行います。

mv {a..y} z/

dir1、、dir2などのディレクトリのリストがある場合は、dir3次の操作を行います。

mv -t z/ dir1 dir2 dir3

または:

mv -t z/ dir{1..3}

簡単な説明:

  • -tオプションは「対象」を意味します。複数のファイル/ディレクトリの移動に関連する状況で混乱を避けるためによく使用されます。
  • ブレーキ拡張は、{1..15}1から15までのすべての数字を印刷し、からまでのすべての文字を{a..f}印刷することによって機能します。af

答え2

私の安全な使用方法についてはfind

find dir/* -prune -type d -name "[a-y]" ! -name "z" -exec mv -t dir/z {} +

答え3

注:これは最もクリーンなアプローチではありません(shivamsの回答を参照)。ただa-z内部にディレクトリがありますdir


私はいつも覚えやすいものを使います。

mv * z

当然文句を言う

mv: cannot move ‘z’ to a subdirectory of itself, ‘z/z’

しかし、そうでない場合は、好きなようにしてください。

これは(少なくとも)次に適用されます。GNU coreutils

関連情報