Linux

刪除保留所有內容的父文件夾

  • September 29, 2017

我想刪除我的父目錄但保留其所有內容。目前我的目錄結構

$ /usermanagement/usermanagement/file1

刪除我的父目錄後,我想看到如下結構

$ /usermanagement/file1

可能是我沒有正確理解你的問題。但我從你的問題中收集到的答案是,

假設您在目前目錄中,其名稱為nested,父目錄名稱為test.

$ cp -Rp . ../;cd ../;rm -rf nested

解釋


  1. cp -Rp . ../- 這將複製所有文件,包括目錄、嵌套目錄和隱藏文件。在哪裡,
  • -R標誌用於“遞歸複製目錄”
  • -p是“保留指定的屬性(預設:模式、所有權、時間戳),如果可能的話,附加屬性:上下文、連結、xattr、全部”,
  • .用於指示目前目錄為源
  • ..指示作為目標的父目錄。
  1. cd ../- 這會將您從目前目錄移動到父目錄
  2. 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以便有機會取消會覆蓋文件的移動)

引用自:https://unix.stackexchange.com/questions/395182