というファイルがありますhome/homeLife
/home に home1 home2 および home3 というファイルが保存されています。
で始まるすべてのファイルをhome*
移動したいですhome/homeLife/.
。
私は入った
mv home* /home/homeLife
cannot move homeLife into subdirectory of itself
私の質問:ディレクトリをどのように除外しますか?
答え1
zsh
glob修飾子を使用してください。
mv home*(.) dst
移動のみ定期的な文書。
しかし、
mv home*(^/) dst
あらゆる種類のファイルの移動とは別に目次。
mv home*(^-/) dst
ディレクトリへのシンボリックリンクも除外されます。
答え2
検索をご利用ください。次は動作します。
find . -name home\* -type f -maxdepth 1 -exec mv {} /home/homeLife/. \;
答え3
Bashを使用してglobを拡張できます。
shopt -s extglob ## activate extglogs if not yet done
mv home!(*Life) homeLife/ ## !(p1|...) = anything except one of the patt
答え4
グローバルマッチリストを簡単に整理できます。
set --; cd /home
for f in ./home*
do [ ! -L "$f" ] &&
[ -f "$f" ] &&
set "$@" "$f"
done
[ "$#" -eq 0 ] || mv "$@" ./homeLife