如何将目录中的所有文件和文件夹移动到父目录?
How do you move all files and folders within a directory to the parent directory?
如何将目录中的所有文件和文件夹从其子目录移动到父目录?包括非常深的文件夹目录中的文件。
我想要实现的是当我在 .
时转换为:
.
./aDir
./aDir/bFile
./aDir/cDir
./aDir/cDir/dDir
./aDir/cDir/dDir/eFile
为此:
.
./aDir
./bFile
./cDir
./dDir
./eFile
我假设你使用的是 unix 命令 find
但是我似乎无法让它工作。
这是我尝试过的:
find -mindepth 1 -maxdepth * -print0 | xargs -0 mv -i -t ~/Desktop
也许这有帮助:
for i in $(find .); do cp -r $i .; done
当你在 .
时,它会转换为:
.
./a
./a/b
./a/b/c
为此:
.
./a
./a/b
./a/b/c
./c
./b
./b/c
试试这个
find . -maxdepth 1 -exec mv {} .. \;
您可能会收到此消息
mv: cannot move `.' to `../.': Device or resource busy
不过不用担心,这是因为“.”正在尝试移动此目录。
我想你想要:
find . -mindepth 1 -depth -print0 | xargs -0 mv -i -t ~/Desktop
由于您要查看 un-nest 您的目录,因此您需要先按深度顺序 mv 它们,否则可能会在较浅的目录中对较深的目录进行 mv。
使用与您的尝试非常相似的语法,以下似乎可以满足要求。
find . -mindepth 2 -depth -type d -print0 | xargs -0 -I{} mv {} ~/Desktop
示例:
$ find . -mindepth 1 -depth -type d
./a/b/c2
./a/b/c
./a/b
./a
$ find . -mindepth 2 -depth -type d -print0 | xargs -0 -I{} mv {} .
$ find . -mindepth 1 -depth -type d
./a
./b
./c
./c2
如何将目录中的所有文件和文件夹从其子目录移动到父目录?包括非常深的文件夹目录中的文件。
我想要实现的是当我在 .
时转换为:
.
./aDir
./aDir/bFile
./aDir/cDir
./aDir/cDir/dDir
./aDir/cDir/dDir/eFile
为此:
.
./aDir
./bFile
./cDir
./dDir
./eFile
我假设你使用的是 unix 命令 find
但是我似乎无法让它工作。
这是我尝试过的:
find -mindepth 1 -maxdepth * -print0 | xargs -0 mv -i -t ~/Desktop
也许这有帮助:
for i in $(find .); do cp -r $i .; done
当你在 .
时,它会转换为:
.
./a
./a/b
./a/b/c
为此:
.
./a
./a/b
./a/b/c
./c
./b
./b/c
试试这个
find . -maxdepth 1 -exec mv {} .. \;
您可能会收到此消息
mv: cannot move `.' to `../.': Device or resource busy
不过不用担心,这是因为“.”正在尝试移动此目录。
我想你想要:
find . -mindepth 1 -depth -print0 | xargs -0 mv -i -t ~/Desktop
由于您要查看 un-nest 您的目录,因此您需要先按深度顺序 mv 它们,否则可能会在较浅的目录中对较深的目录进行 mv。
使用与您的尝试非常相似的语法,以下似乎可以满足要求。
find . -mindepth 2 -depth -type d -print0 | xargs -0 -I{} mv {} ~/Desktop
示例:
$ find . -mindepth 1 -depth -type d
./a/b/c2
./a/b/c
./a/b
./a
$ find . -mindepth 2 -depth -type d -print0 | xargs -0 -I{} mv {} .
$ find . -mindepth 1 -depth -type d
./a
./b
./c
./c2