Linux

刪除目錄中的所有文件,但不刪除目錄

  • May 6, 2022

我有一個名為outer.

outer包含一個名為的目錄inner(其中包含許多相同副檔名的文件)

cdouter。如何刪除其中的所有文件inner但保留目錄inner(但為空)?

如果你想刪除目錄的內容而不是目錄本身,你需要做的就是告訴rm刪除內容:

rm inner/*

這將刪除所有非隱藏文件./inner並保持目錄不變。要同時刪除任何子目錄,請使用-r

rm -r inner/*

如果您還想刪除隱藏文件,您可以這樣做(假設您使用的是 bash):

shopt -s dotglob
rm -r inner/*

最後一個命令將刪除 中的所有文件和所有目錄inner,但會inner保持原樣。

最後,請注意,您不需要cd執行outer任何這些:

$ tree -a outer/
outer/
├── dir
└── inner
   ├── dir
   ├── file
   └── .hidden

3 directories, 2 files

我現在可以rm -r outer/inner/*從目前目錄執行,不需要cd outer,它會刪除除目錄本身之外的所有內容:

$ shopt -s dotglob
$ rm -r outer/inner/*
$ tree -a outer/
outer/
├── dir
└── inner

2 directories, 0 files

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