ディレクトリ(およびすべてのサブファイル/ディレクトリ)を移動しながら項目をアルファベット順に移動するにはどうすればよいですか?

ディレクトリ(およびすべてのサブファイル/ディレクトリ)を移動しながら項目をアルファベット順に移動するにはどうすればよいですか?

次のコマンドを実行するとき:

mv -v foo /mnt/bar

ディレクトリfooとすべてのサブコンテンツがこのディレクトリに移動されます/mnt/bar。ファイルの移動順序は次のとおりです。目次注文する( ls -U)。

同じことをしながら、サブファイル/ディレクトリをfooアルファベット順に移動する良い方法はありますか?

find -exec mv子コンテンツをアルファベット順に繰り返すために使用できることはわかっていますが、ターゲットで同じサブディレクトリ構造を維持するには、いくつかの面倒な作業が必要です。 GNUにフラグがあったらと思いますが、mvマニュアルページには役に立つものはありません。

ベストアンサー1

$ \ls foo | xargs -I% mv -v foo/% bar
'foo/one' -> 'bar/one'
'foo/sie' -> 'bar/sie'
'foo/two' -> 'bar/two'
'foo/uve' -> 'bar/uve'
'foo/wox' -> 'bar/wox'
'foo/zanzibar' -> 'bar/zanzibar' 
  1. ls項目をアルファベット順にリストするために使用されます。純粋に実行されていることを確認するにはls(.bashrcまたは.bash_aliasesに隠されたエイリアスとして追加された追加の文字なし)、コマンドを.bashrcまたは.bash_aliasesとして実行します\ls
  2. ls次に出力を送信xargs
  3. 各項目に変数とともに変数名を指定します-I(これはmvコマンドで「表示」できる情報を提供します)
  4. アイテム(と呼ばれる%)をその場所からfoo新しいターゲットに移動します。

おすすめ記事