Jak usunąć wszystko w katalogu, w tym ukryte pliki i katalogi?
W tej chwili używam:
rm -rf *
rm -rf .*
rm -rf yourdirectory/*
..
katalogu, który usunie wszystko, co znajduje się w katalogu powyżej .
Jak usunąć wszystko w katalogu, w tym ukryte pliki i katalogi?
W tej chwili używam:
rm -rf *
rm -rf .*
rm -rf yourdirectory/*
..
katalogu, który usunie wszystko, co znajduje się w katalogu powyżej .
Odpowiedzi:
Prosty i bezpośredni:
find -delete
Obejmuje katalogi i ukryte pliki. Przynajmniej gnu-find wie -delete
, że find
możesz się różnić.
find /path -delete -mindepth 1
.
Najlepsza odpowiedź brzmi: nie rób tego. Rekurencyjnie usuń sam katalog, a następnie utwórz go ponownie jako pusty katalog. Bardziej niezawodne i łatwiejsze do zrozumienia dla innych osób. Po ponownym utworzeniu katalog może mieć innego właściciela, grupę i uprawnienia. Jeśli są one ważne, bądź ostrożny. Ponadto, jeśli jakieś uruchomione programy mają otwarte uchwyty plików (deskryptory) w katalogu, nie będziesz chciał go usuwać. Jeśli żaden z tych specjalnych przypadków nie ma zastosowania, łatwiej jest usunąć cały katalog.
rm -rf -- * .[!.]* ..?*
Każdy z trzech wzorów rozwija się do siebie, jeśli nie pasuje do niczego, ale nie stanowi to problemu, ponieważ chcemy dopasować wszystko i rm -f
zignorować nieistniejące argumenty.
Zauważ, .*
że pasowałoby..
.
jeśli jesteś w katalogu:
cd .. && rm -rf dir && mkdir dir && cd dir
Inaczej:
rm -rf /path/to/dir && mkdir /path/to/dir
O mój Zsh
rm -rf (.|)*
Ponownie, dotyczy to tylko Zsh.
*(D)
( D
kwalifikator glob włącza glob_dots
opcję dla tego wzorca).
rm -rf {.,}*
(w przeciwieństwie do bash, zsh nie obejmuje .
i ..
do {.,}*
, przynajmniej na moim komputerze).
Co powiesz na używanie find
. Myślę, że jest to ogólnie dobry wybór, gdy trzeba przekopać podkatalogi.
find . -type f -exec rm {} \;
Spróbować rm -rf *?*
. Spowoduje to usunięcie normalnych i ukrytych plików.
*?*
nie będzie pasował do plików / katalogów „kropkowych” (chyba że włączyłeś dotglob
opcję w bash , GLOB_DOTS
opcję w zsh lub równoważną dla jakiejkolwiek powłoki, której używasz).
rm -rf .* *
.