Linux
刪除目錄中的所有文件,但不刪除目錄
我有一個名為
outer
.
outer
包含一個名為的目錄inner
(其中包含許多相同副檔名的文件)我
cd
要outer
。如何刪除其中的所有文件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