ファイルとディレクトリを含むフォルダがありますが、これらすべてのファイルとディレクトリを、およびを除く他のA
フォルダに移動したいと思います。B
file
file2
directory
directory2
これはどのように達成できますか?
答え1
そしてzsh
:
setopt extendedglob # best in ~/.zshrc
mv A/^(file|directory)(|2)(D) B/
((D)
含む指す(隠し)ファイル)。
そしてbash
:
shopt -s extglob dotglob failglob
mv A/!(@(file|directory)?(2)) B/
そしてksh93
(FIGNORE='@(.|..|@(file|directory)?(2))'; mv A/* B)
答え2
私がいつもすること
cd A
ls > a
(「a」ファイルがないと仮定)。
vi a
アーカイブしたいファイルまたはディレクトリを削除します。
mv $(<a) B
答え3
find
除外された式で使用できます。
find . ! -name . -prune ! -path ./file \
! -path ./file2 \
! -path ./directory \
! -path ./directory2 \
-exec mv {} your_destination \;
このソリューションは、以下からインスピレーションを得ました。この問題。
答え4
./A
とが./B
同じファイルシステムにある場合そしてそのファイルが次の場所にまだない場合./B
:
file file2 directory directory2
...これはアトミックでなければなりません。
cd ./A; mv * ../B
for mv in file file2 directory directory2
do mv ../B/"$mv" .
done
そうでない場合は、以下があります。少なくとも上記のコマンドセットを使用して、8つの追加のデバイス間のコピーを完了します。