というフォルダがありますfolder1
。これには複数のファイルと2つのサブフォルダがありますsubfolder1
。subfolder2
をfolder1
削除し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/subfolder2
zsh
mv folder1/*(^/) folder1/subfolder2/
subfolder1
(明らかにsubfolder2
)を除いて、タイプに関係なくすべてのファイルを移動するには、次の手順を実行します。
set -o extendedglob # best in ~/.zshrc
mv folder1/^(subfolder1|subfolder2) folder1/subfolder2
隠しファイルも移動するには、D
glob修飾子を追加してください。
答え3
find
とxargs
.readを使用してくださいman find xargs
。ファイル名がどのように見えるか(挿入スペース、その他の興味深い文字)を指定しなかったので-print0
。
find folder1 -maxdepth 1 -type f -print0 | \
xargs -0 -r mv --target-directory=subfolder2