如何使用命令将普通文件(而不是目录)从 Linux 中的一个文件夹移动到另一个文件夹mv
?
我已尝试过mv * ~/
,但它复制了所有内容,包括目录。
答案1
你可以试试
find . -maxdepth 1 -type f -exec mv {} destination_path \;
答案2
@Mereghost 非常接近。以下是我移动所有文件(包括隐藏文件)但不移动目录时得到的结果:
find . -maxdepth 1 -type f -name '*' -exec mv -n {} /destination_path \;
find之后.
的命令假设当前目录是要移动的文件的来源。如果不是,可以修改命令,如下所示:
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 \;
答案3
我是一个“用锤子做所有事情”的人,所以我使用 Bourne shell 程序来做别人使用外部程序来做的事情......
for file in * .*
do
test -f "$file" && mv "$file" "$HOME"/
done
有些人喜欢用尽可能少的打字来完成工作,但我打字很快,而且我脑子里已经有了这样的东西,所以这样做并不太麻烦,而不需要查找 find 和 exec 等的确切参数。
不过,YMMV(年龄差异)...
答案4
这可能被认为是不好的做法/危险,在这种情况下请评论!但是
cp * ~; rm *
cp
因为和的默认行为rm
都是忽略目录,所以它应该具有预期的效果。