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 findmoż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 -fzignorować 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)( Dkwalifikator glob włącza glob_dotsopcję 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ś dotglobopcję w bash , GLOB_DOTSopcję w zsh lub równoważną dla jakiejkolwiek powłoki, której używasz).
rm -rf .* *.