Rak*_*kib 5 linux filesystems rm
我想删除我的父目录但保留其所有内容。目前我的目录结构
$ /usermanagement/usermanagement/file1
Run Code Online (Sandbox Code Playgroud)
删除我的父目录后,我想看到如下结构
$ /usermanagement/file1
Run Code Online (Sandbox Code Playgroud)
(假设您要删除的目录是当前工作目录)
与zsh:
cd -P . &&
mv -- *(D) .. &&
cd -P .. &&
rmdir ~-
Run Code Online (Sandbox Code Playgroud)
与bash:
cd -P . &&
(shopt -s dotglob && mv -- * ..) &&
cd -P .. &&
rmdir "$OLDPWD"
Run Code Online (Sandbox Code Playgroud)
cd -P .确保存储在的当前工作目录$PWD是无符号链接的。我们想将所有文件和目录移动到父目录中,包括隐藏的文件和目录(因此(D)全局标记和dotglob选项)。
如果成功,我们将当前目录向上更改一级并删除我们以前的目录。
(您可能希望添加一个-i选项,mv以便有机会取消会覆盖文件的移动)
可能是我没有正确理解你的问题。但我从你的问题中得到的答案是,
假设您位于当前目录,其名称为
nested,父目录名称为test。
$ cp -Rp . ../;cd ../;rm -rf nested
cp -Rp . ../- 这将复制所有文件,包括目录、嵌套目录和隐藏文件。在哪里,
-R标志用于“递归复制目录”
-p是“保留指定的属性(默认:模式、所有权、时间戳),如果可能的话附加属性:上下文、链接、xattr、全部”,
.用于指示当前目录作为源
..指示父目录作为目标。
cd ../- 这会将您从当前目录移动到父目录
rm -rf nested- 这将删除所有文件,包括目录、嵌套目录和隐藏文件。
来源:手册页