Linux移动目录下所有文件或文件夹到另一个目录
find
+ xargs
find a/ -mindepth 1 -maxdepth 1 -print0 | xargs -0 -r mv -t b/
-mindepth 1 -maxdepth 1
: 只打印a
的直接子文件和子目录。
-print0
: 每项用0
也就是null
隔开,而不是以空格或者换行隔开。好处是这样可以支持带特殊字符的文件名和目录名。
xargs -0
: 每项用0
也就是null
隔开。
mv -t
: 第一个是目标,第二个是源。如果不带-t
,那就是第一个是源,第二个是目标。
(不推荐)*
mv a/* b/
缺点:
-
假如源目录
a
是空的,就会报错,而且没法避免。 -
不能移动
.
开头的文件或者目录。