Answers:
你可以试试
find . -maxdepth 1 -type f -exec mv {} destination_path \;
-exec
我是一个“用锤子做所有事情”的家伙,所以我用bourne shell程序做其他事情,而用外部程序做...
for file in * .*
do
test -f "$file" && mv "$file" "$HOME"/
done
有些人喜欢用尽可能少的打字方式来完成工作,但是我是一个非常快速的打字员,我的大脑已经内置了类似的东西,所以这样做而不是查找确切的字眼并不是一件很痛苦的事情。查找和执行等参数。
YMMV,不过...
@Mereghost非常接近。这是移动所有文件(包括隐藏文件)但不移动目录的结果:
find . -maxdepth 1 -type f -name '*' -exec mv -n {} /destination_path \;
在.
后发现假定您的当前目录是要移动的文件的来源。如果没有,则可以修改该命令,如下所示:
find /source_path -maxdepth 1 -type f -name '*' -exec mv -n {} /dest_path \;
如果只想移动普通文件而不移动隐藏文件:
find . -maxdepth 1 -type f -name '[!.]*' -exec mv -n {} /dest_path \;
如果只想移动隐藏文件而不移动普通文件:
find . -maxdepth 1 -type f -name '.*' -exec mv -n {} /dest_path \;
您可以使用查找
find * -maxdepth 1 -type f -exec mv {} ~ \;
mv`find ./sourcedir/* -type f` ./destdir
find
的-exec
选项是避免此问题的最佳方法。