mc rm
語法
mc rm
命令會從 MinIO 部署上的儲存桶移除物件。若要完全移除儲存桶,請改用 mc rb
。
您也可以針對本機檔案系統使用 mc rm
,以產生與 rm
命令列工具類似的結果。
如需 MinIO 如何對物件執行 DELETE
動作的詳細資訊,請參閱 物件刪除。
以下命令會從 myminio
MinIO 部署上的 mydata
儲存桶中移除多個物件
mc rm --recursive myminio/mydata
該命令具有以下語法
mc [GLOBALFLAGS] rm \
[--bypass] \
[--dangerous] \
[--dry-run] \
[--force]* \
[--incomplete] \
[--newer-than "string"] \
[--non-current] \
[--older-than "string"] \
[--recursive] \
[--rewind "string"] \
[--stdin] \
[--version-id "string"]* \
[--versions] \
ALIAS [ALIAS ...]
方括號
[]
表示選用參數。共享一行的參數是相互依存的。
使用管道符號
|
分隔的參數是互斥的。
將範例複製到文字編輯器中,並在終端機/shell 中執行命令之前根據需要進行修改。
mc rm --force
為多個參數所必需。 mc rm --version-id
與多個參數互斥。請參閱參考文件以獲取更多資訊。
參數
- ALIAS
- 必要
MinIO 部署的別名以及要移除的物件完整路徑。例如
mc rm play/mybucket/object.txt
您可以在相同或不同的 MinIO 部署上指定多個物件。例如
mc rm play/mybucket/object.txt play/mybucket/otherobject.txt
如果指定儲存桶或儲存桶前綴的路徑,您必須同時指定
--recursive
和--force
參數。例如mc rm --recursive --force play/mybucket/ mc rm --recursive --force play/mybucket/myprefix/
請考慮先使用
--dry-run
標誌執行命令,以驗證遞迴刪除操作的範圍。若要從本機檔案系統中移除檔案,請指定該檔案的完整路徑
mc rm ~/data/myoldobject.txt
- --bypass
- 選用
允許移除在 GOVERNANCE 物件鎖定下保留的物件。
- --dangerous
- 選用
當
ALIAS
指定 MinIO 部署上的根目錄(所有儲存桶)時,允許執行mc rm
。當與
--versions
組合使用時,此標誌會指示mc rm
從ALIAS
目標永久移除所有物件*和*版本。請考慮先使用
--dry-run
來執行命令,以驗證全站刪除操作的範圍。警告
使用
--versions
標誌執行mc rm --dangerous
是不可逆的。在執行之前,請盡一切可能盡職地確保命令僅適用於所需的ALIAS
目標。
- --force
- 選用
允許使用以下任何參數執行
mc rm
- --incomplete, I
- 選用
移除指定物件的不完整上傳。
如果任何
ALIAS
指定儲存桶,您必須同時指定--recursive
和--force
。
- --recursive, r
- 選用
遞迴移除每個
ALIAS
儲存桶或儲存桶前綴的內容。如果指定
--recursive
,您必須同時指定--force
。對於啟用 版本控制 的儲存桶,此選項預設會為每個移除的物件產生一個刪除標記。包含
--versions
標誌以遞迴移除儲存桶中的所有物件*和*物件版本。請考慮先使用
--dry-run
標誌執行命令,以驗證遞迴刪除操作的範圍。與
mc rm --version-id
互斥
- --rewind
- 選用
指示
mc rm
僅對指定時間點存在的物件版本執行操作。若要倒轉到過去的特定日期,請將日期指定為 ISO8601 格式的時間戳記。例如:
--rewind "2020.03.24T10:00"
。若要倒轉一段時間,請將持續時間指定為
#d#hh#mm#ss
格式的字串。例如:--rewind "1d2hh3mm4ss"
。
--rewind
要求指定的ALIAS
是一個支援 儲存桶版本控制 的 S3 相容服務。對於 MinIO 部署,請使用mc version
來啟用或停用儲存桶版本控制。
- --versions
- 選用
指示
mc rm
對儲存桶中存在的所有物件版本執行操作。--versions
要求指定的ALIAS
是一個支援 儲存桶版本控制 的 S3 相容服務。對於 MinIO 部署,請使用mc version
來啟用或停用儲存桶版本控制。將
--versions
和--rewind
一起使用,以移除在特定時間點存在的所有物件版本。
- --version-id, vid
- 選用
指示
mc rm
僅針對指定的物件版本執行操作。--version-id
要求指定的ALIAS
必須是支援 儲存桶版本控制 的相容 S3 服務。對於 MinIO 部署,請使用mc version
來啟用或停用儲存桶版本控制。與下列任何旗標互斥
全域旗標
此命令支援任何 全域旗標。
範例
移除單一物件
mc rm ALIAS/PATH
遞迴移除儲存桶的內容
將 mc rm
與 --recursive
和 --force
選項搭配使用,以遞迴移除儲存桶的內容。
mc rm --recursive --force ALIAS/PATH
此操作不會移除儲存桶。使用 mc rb
來移除儲存桶以及所有內容和相關設定。
移除物件的所有不完整上傳檔案
將 mc rm
與 --incomplete
選項搭配使用,以移除物件的不完整上傳檔案。
mc rm --incomplete --recursive --force ALIAS/PATH
將物件回溯到先前的版本
將 mc rm
與 --versions
和 --newer-than
搭配使用,以移除所有比指定時間長度還新的物件版本。這實際上會將物件「回溯」到當時的狀態。
重要
移除物件的特定版本是一種破壞性操作。您無法還原已刪除的物件版本。
mc rm ALIAS/PATH --versions --newer-than DURATION
行為
刪除儲存桶內容
使用 mc rm
來移除儲存桶中的所有內容不會刪除儲存桶本身。與儲存桶相關聯的任何設定都會保留,例如 預設 物件 鎖定 設定
。
MinIO 會在移除物件時修剪空的字首
mc rm
依賴 mc
移除 API 來刪除物件。作為移除儲存桶字首中最後一個物件的一部分,mc
也會遞迴移除字首的每個空部分,直到儲存桶根目錄為止。mc
僅將遞迴移除套用至作為物件寫入操作的一部分隱含建立的字首 - 也就是說,字首不是使用明確的目錄建立命令 (例如 mc mb
) 建立的。
例如,假設有一個名為 photos
的儲存桶,其中包含下列物件字首
photos/2021/january/myphoto.jpg
photos/2021/february/myotherphoto.jpg
photos/NYE21/NewYears.jpg
photos/NYE21
是唯一使用 mc mb
明確建立的字首。所有其他字首都是作為寫入位於該字首的物件的一部分隱含建立的。
如果 mc
命令移除 myphoto.jpg
,移除 API 會自動修剪空的 /january
字首。如果後續的 mc
命令移除 myotherphoto.jpg
,則移除 API 會自動修剪 /february
字首和現在為空的 /2021
字首。如果 mc
命令移除 NewYears.jpg
,則 /NYE21
字首會保留,因為它是明確建立的。
如果使用 mc rm
來對檔案系統執行操作,則 mc
會套用相同的行為,方法是將空的目錄路徑遞迴修剪到根目錄。但是,mc
移除 API 無法區分明確建立的目錄路徑和隱含建立的目錄路徑。如果 mc rm
刪除檔案系統路徑中的最後一個物件,則 mc
會在移除操作中遞迴刪除該路徑中的所有空目錄,直到根目錄為止。
已設定版本的儲存桶中的刪除操作
MinIO 支援在單一儲存桶中保留物件的多個版本。在已設定版本的儲存桶中刪除物件會產生特殊的 DeleteMarker
墓碑,將物件標記為已刪除,同時保留該物件的所有先前版本。
若要從儲存桶中移除特定物件版本,請使用
mc rm --version-id
若要從儲存桶中移除物件的所有版本,請使用
mc rm --versions
要從儲存桶中移除物件的所有非當前版本,請使用
mc rm --non-current
變更於 mc 版本:RELEASE.2023-03-20T17-17-53Z
輸出會顯示版本化檔案的修改時間。與 --dry-run
一起使用時,這有助於確認您已選取要移除的正確物件。
S3 相容性
mc 命令行工具是為與 AWS S3 API 相容而構建的,並已透過 MinIO 和 AWS S3 進行測試,以確保預期的功能和行為。
MinIO 不為其他 S3 相容服務提供任何保證,因為它們的 S3 API 實作未知,因此不受支援。雖然 mc 命令可能會如文件所述般運作,但任何此類使用行為均由您自行承擔風險。