如何通过mv命令将所有文件和文件夹从一个目录移动到另一个目录?

#1 楼

试试这个:

mv /path/sourcefolder/* /path/destinationfolder/


评论


这将不包含任何“隐藏”文件(例如.htaccess)

–本·莱萨尼-索纳西
2012年10月5日12:53

好点子。如果使用bash,则可以运行shopt -s dotglob,然后“ *”也将匹配隐藏文件。

–chutz
2012年10月5日14:52

如果目标文件夹中有相同名称的文件夹和文件,该怎么办?他们被覆盖了吗?

–user1063287
16年6月14日在1:08

...似乎没有覆盖具有相同名称的文件夹。 mv:无法将“ / a / js”移动到“ / b / js”:目录不为空

–user1063287
16年6月14日在1:29

您只需将-f传递给它即可覆盖

–卢卡
18年7月20日在11:22

#2 楼

zsh:

mv /src/*(D) /dst/


(D)包含点文件。

评论


(D)的语法错误为何?

– Pathros
18年6月23日在17:12

@Pathros,可能是因为您不想在zsh中这样做。

–StéphaneChazelas
18年6月23日在19:13

我知道很多年前我接受了第一个答案,现在改变它对我来说很愚蠢。但是实际上,我一直在使用这种方法。

–卢卡
18年7月20日在11:23

#3 楼

这在Bash中对我有用(我认为这很大程度上取决于您的外壳...)

$  mv source/{,.}* /destination/folder/here


评论


实际上,它不应该这样,因为在Bash中,source /{,.}*与名为./和../的目录项匹配。

– poige
2012年10月10日21:48

。由于语法而被跳过,..也被跳过,因为两个位置都相同(mv命令实现了这种情况)。已记录您的担忧,但该命令确实起作用。

–尼尔·伯恩(Niall Byrne)
2012年10月10日在22:39



当我尝试播放mv时:覆盖“目的地/”。 mv:覆盖'destination / ..'?,但是将-n添加到mv可以阻止它尝试覆盖

–普特尼克
2012-12-5 20:05



@Putnik-这是一个很好的陷阱!什么操作系统/发行版? (当我搞砸这个时候我正在OSX上工作...)

–尼尔·伯恩(Niall Byrne)
2012-12-7 3:38



@Niall Byrne-我看到的提示与Putnik相同。使用Ubuntu 14.04。

– Mark Doliner
2014年12月23日下午6:16

#4 楼

这在Bash 4.2.46中对我有效,它将所有文件和文件夹(包括隐藏文件和文件夹)移动到另一个目录。

<。除以外的所有隐藏文件。和..

评论


。[^。] *(或其POSIX等效项[[!。] *)也排除..anything文件。

–StéphaneChazelas
16-10-26在12:30



它也可以在tcsh中工作。

– Jaime M.
18年2月12日在14:45

unix.stackexchange.com/a/402856/93768包含完整的正确表达式。

– DJCrashdummy
18/09/6在18:50



它为我的.git文件夹显示“目录不为空”

–托马斯·韦勒(Thomas Weller)
19年4月26日在10:09

#5 楼

我说这有点无聊,但是真正的防弹(GNU)方式是:

cd /SourceDir && find ./ -maxdepth 1 -mindepth 1 -exec mv -t /Target/Dir {} +

P。 S.现在您可能会明白为什么很多人确实喜欢Midnight Commander。

#6 楼

如果您只想执行剪切和粘贴之类的操作,那么有一种对我有用的简单方法:

到目录dir_source

#7 楼

还有另一种方法,因为它很复杂(因为我喜欢用复杂的方法来做我猜的事情)

非常普遍,并且不使用-Q,您需要更改IFS(这意味着您不需要评估,而需要引用变量)。

cd /source
for f in $(\ls -QA); do eval mv $f /destination/$f; done


评论


ls -Q不会以适合与eval甚至$(...)一起使用的格式输出。例如,在运行后触摸“ $(reboot)”(或使用“ $(uname)”以获取较轻版本)。

–StéphaneChazelas
2015年10月8日14:56



-A现在是POSIX(自POSIX.1-2008起)。

–StéphaneChazelas
2015年10月8日14:58