我有一个包含许多文件和子目录的目录。要仅移动子目录,我才知道你可以使用:
ls -d BASEDIR/*/ | xargs -n1 -I% mv % TARGETDIR/
答案 0 :(得分:4)
为什么不使用find?
find . -maxdepth 1 -type d -exec mv '{}' /tmp \;
-maxdepth 1
确保查找不会比当前目录更深入
-type d
告诉find只查找目录
-exec
执行一个命令,其中包含{}
在我看来,一个更干净的解决方案,当你有包含空格或标签的文件时,它也可以更好地使用xargs。
答案 1 :(得分:2)
使用如下文件结构:
/dir2move2
/dir
/subdir1
/subdir2
index.js
仅移动子目录而不移动您可以执行的文件:
mv ./dir/*/ ./dir2move2
答案 2 :(得分:1)
可能的解决方案:
find BASEDIR/ -maxdepth 1 -mindepth 1 -type d -exec mv '{}' TARGETDIR \;
答案 3 :(得分:1)
我使用以下内容: $ mv ./*/ DirToMoveTo
例如: 假设我想将名称中带有“Old”的所有目录移动到/ data上名为“Old_Dirs”的文件夹中。 命令看起来像这样: mv ./ 旧 / / data /
答案 4 :(得分:0)
你可以简单地使用相同的命令来移动文件,但在子目录的名称后加一个斜杠
sudo mv */ path/to/destination
sudo mv subdir/ path/to/subdirectory