我有一个包含许多文件和子目录的目录。仅移动子目录,我刚刚了解到您可以使用:
ls -d BASEDIR/*/ | xargs -n1 -I% mv % TARGETDIR/
为什么不使用查找?
find . -maxdepth 1 -type d -exec mv '{}' /tmp \;
Run Code Online (Sandbox Code Playgroud)
-maxdepth 1
确保find不会比当前目录更深入地
-type d
告诉find仅查找目录
-exec
执行命令,并使用由find引用的find结果{}
我认为这是一种更干净的解决方案,并且当文件中包含空格或制表符时,它比使用xargs更好。
小智 5
我使用以下内容:
$ mv ./*/ DirToMoveTo
Run Code Online (Sandbox Code Playgroud)
例如:说我想将名称中带有“ Old”的所有目录移动到/ data上名为“ Old_Dirs ” 的文件夹中。该命令将如下所示:
mv ./*Old*/ /data/
Run Code Online (Sandbox Code Playgroud)