Linux
刪除保留所有內容的父文件夾
我想刪除我的父目錄但保留其所有內容。目前我的目錄結構
$ /usermanagement/usermanagement/file1
刪除我的父目錄後,我想看到如下結構
$ /usermanagement/file1
可能是我沒有正確理解你的問題。但我從你的問題中收集到的答案是,
假設您在目前目錄中,其名稱為
nested
,父目錄名稱為test
.
$ cp -Rp . ../;cd ../;rm -rf nested
解釋
cp -Rp . ../
- 這將複製所有文件,包括目錄、嵌套目錄和隱藏文件。在哪裡,
-R
標誌用於“遞歸複製目錄”-p
是“保留指定的屬性(預設:模式、所有權、時間戳),如果可能的話,附加屬性:上下文、連結、xattr、全部”,.
用於指示目前目錄為源..
指示作為目標的父目錄。
cd ../
- 這會將您從目前目錄移動到父目錄rm -rf nested
- 這將刪除所有文件,包括目錄、嵌套目錄和隱藏文件。來源:手冊頁
(假設您要刪除的目錄是目前工作目錄)
與
zsh
:cd -P . && mv -- *(D) .. && cd -P .. && rmdir ~-
與
bash
:cd -P . && (shopt -s dotglob && mv -- * ..) && cd -P .. && rmdir "$OLDPWD"
cd -P .
確保儲存的目前工作目錄$PWD
是無符號連結的。我們想將所有文件和目錄移動到父目錄中,包括隱藏的文件和目錄(因此有(D)
globbing 標誌和dotglob
選項)。如果可行,我們將目前目錄向上更改一級並刪除我們以前的目錄。
(您可能需要添加一個
-i
選項,mv
以便有機會取消會覆蓋文件的移動)