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/

缺点:

  1. 假如源目录a是空的,就会报错,而且没法避免。

  2. 不能移动.开头的文件或者目录。

参考文献

https://askubuntu.com/questions/172629/how-do-i-move-all-files-from-one-folder-to-another-using-the-command-line

posted @ 2024-09-28 13:40  寻找繁星  阅读(468)  评论(0编辑  收藏  举报