サブフォルダを移動せずにフォルダ内のすべてのファイルを別のフォルダに移動する[重複]

サブフォルダを移動せずにフォルダ内のすべてのファイルを別のフォルダに移動する[重複]

というフォルダがありますfolder1。これには複数のファイルと2つのサブフォルダがありますsubfolder1subfolder2folder1削除しsubfolder2たいと思いますsubfolder1

どうすればいいですか?

答え1

find以下を使用できますmv

私のフォルダの設定は次のとおりです。

$ find folder1
folder1
folder1/subfolder2
folder1/subfolder2/i
folder1/subfolder2/h
folder1/subfolder2/g
folder1/subfolder1
folder1/subfolder1/f
folder1/subfolder1/e
folder1/subfolder1/d
folder1/c
folder1/b
folder1/a

aあなたのケースをシミュレートするために、bそしてc次に移動したいと思いますsubfolder2

$ find folder1 -maxdepth 1 -type f -exec mv "{}" folder1/subfolder2 \;

今、私は次を見てくださいfolder1

$ find folder1
folder1
folder1/subfolder2
folder1/subfolder2/a
folder1/subfolder2/b
folder1/subfolder2/c
folder1/subfolder2/i
folder1/subfolder2/h
folder1/subfolder2/g
folder1/subfolder1
folder1/subfolder1/f
folder1/subfolder1/e
folder1/subfolder1/d

答え2

シェルからfolder1ディレクトリ以外のファイル(隠しファイルを除く)を移動するには、次のようにします。folder1/subfolder2zsh

mv folder1/*(^/) folder1/subfolder2/

subfolder1(明らかにsubfolder2)を除いて、タイプに関係なくすべてのファイルを移動するには、次の手順を実行します。

set -o extendedglob # best in ~/.zshrc
mv folder1/^(subfolder1|subfolder2) folder1/subfolder2

隠しファイルも移動するには、Dglob修飾子を追加してください。

答え3

findxargs.readを使用してくださいman find xargs。ファイル名がどのように見えるか(挿入スペース、その他の興味深い文字)を指定しなかったので-print0

find folder1 -maxdepth 1 -type f -print0 | \
    xargs -0 -r mv --target-directory=subfolder2

関連情報