在Unix操作系统中仅移动目录而不移动文件
我有一个包含许多文件和子目录的目录。要仅移动子目录,我刚刚了解到您可以使用:在Unix操作系统中仅移动目录而不移动文件,unix,Unix,我有一个包含许多文件和子目录的目录。要仅移动子目录,我刚刚了解到您可以使用: ls-d BASEDIR/*/|xargs-n1-I%mv%TARGETDIR/为什么不使用find find . -maxdepth 1 -type d -exec mv '{}' /tmp \; -maxdepth 1确保查找不会深入到当前目录 -type d告诉find仅查找目录 -exec使用{} 在我看来,这是一个更干净的解决方案,当文件中有空白或制表符时,它也比使用xargs工作得更好 可能的解决方案:
ls-d BASEDIR/*/|xargs-n1-I%mv%TARGETDIR/
为什么不使用find
find . -maxdepth 1 -type d -exec mv '{}' /tmp \;
-maxdepth 1
确保查找不会深入到当前目录
-type d
告诉find仅查找目录
-exec
使用{}
在我看来,这是一个更干净的解决方案,当文件中有空白或制表符时,它也比使用xargs工作得更好 可能的解决方案:
find BASEDIR/ -maxdepth 1 -mindepth 1 -type d -exec mv '{}' TARGETDIR \;
使用如下文件结构:
/dir2move2
/dir
/subdir1
/subdir2
index.js
mv ./*Old*/ /data/
要仅移动子目录而不移动文件,可以执行以下操作:
mv./dir/*/./dir2move2
我使用以下命令:
$ mv ./*/ DirToMoveTo
例如:
假设我想将名称中带有“Old”的所有目录移动到/data上名为“Old_Dirs”的文件夹中。
该命令如下所示:
/dir2move2
/dir
/subdir1
/subdir2
index.js
mv ./*Old*/ /data/
您可以简单地使用相同的命令移动文件,但在子目录的名称后加一个斜杠
sudo mv */ path/to/destination
sudo mv subdir/ path/to/subdirectory
谢谢我喜欢你的观点,即不必担心制表符和空白。不过我只想移动目录,所以我会在下面修改你的目录:啊,对不起,我想我有点糊涂了:)
-type d
在这种情况下是你的朋友,然后简单明了