Próbuję usunąć wszystkie pliki i podkatalogi z katalogu. Zwykłem rm -r
usuwać wszystkie pliki, ale chcę usunąć wszystkie pliki i podkatalogi, z wyjątkiem samego katalogu głównego.
Na przykład mam topowy katalog jak images
. Zawiera pliki header.png
, footer.png
a podkatalog.
Teraz chcę usunąć header.png
, footer.png
i podkatalogu, ale nie images
.
Jak mogę to zrobić w systemie Linux?
rm -Rf
wszystkie znajdujące się tam pliki i katalogi.Odpowiedzi:
Jeśli zostanie wywołany katalog najwyższego poziomu
images
, uruchomrm -r images/*
. To używa globalnego operatora powłoki*
do działaniarm -r
na każdym pliku lub kataloguimages
.źródło
Aby usunąć ukryte pliki, musisz określić:
W przypadku powłok, których globusy zawierają
.
i..
, spowoduje to błąd podobny doale usunie ukryte pliki.
Podejście bez błędów polega na użyciu find / delete z mindepth. To jest gnu-find.
W znalezieniu może brakować predykatu
-mindepth
lub-delete
, w takim przypadku możesz wykonać:źródło
rm .*
nie usuwa.
albo..
i nie ma co najmniej od 1994 roku dla GNU utils i prawdopodobnie od końca lat 70-tych dla systemu UNIX . Jest bardzo mało prawdopodobne, abyś znalazł system, w którym systemrm .*
plików przechodzi w górę poza muzeum.Aby usunąć wszystkie pliki i katalogi (w tym ukryte ) z katalogu, możesz wykonać następujące czynności:
służy
ls -Ab
do dopasowania wszystkich plików / katalogówsłuży
find
do dopasowania wszystkich plików / katalogówlub jeśli
find
nie obsługuje-delete
:usuń folder, a następnie utwórz go ponownie
w bash
źródło
rm -rf *
nie jest bezpieczne, jeśli nie masz wiedzy o plikach w katalogu, ponieważ plik rozpoczynający się od-
(myślnik) będzie interpretowany jakorm
flaga ...rm -rf ./* ./.*
Aby usunąć wszystkie zwykłe pliki rekurencyjnie w katalogu, to polecenie (przy założeniu GNU lub FreeBSD
find
) jest wystarczająco dobre:To pozostawia wszystkie nieregularne pliki, takie jak dowiązania symboliczne (niezależnie od tego, czy wskazują zwykłe pliki, czy nie), katalogi, piątki, gniazda, urządzenia ...
Zobacz też:
aby usunąć pliki dowolnego typu oprócz katalogu .
źródło
Wypróbuj tę wersję:
źródło
Używam
find
tutaj polecenia:Krok 1: Znajdź wszystkie pliki i usuń je:
Przykład:
Krok 2: Znajdź wszystkie podkatalogi i usuń je:
źródło
find /path/to/directory/ -type d
zawiera.
więc usunie sam katalog. Musisz także użyć-mindepth
przełącznika, jak powiedzieli inni.Pytanie polegało na opróżnieniu katalogu = usunięcie zawartości katalogu, w tym ukrytych plików, ale nie samego katalogu. Polecenie find z opcją -mindepth 1 jest właściwie właściwą drogą, ale aby uniknąć komunikatów o błędach, należy połączyć je z opcją -maxdepth 1:
źródło
Składnia rm jest następująca:
Musisz więc wyraźnie podać odpowiednią ścieżkę, np
źródło
Możesz usunąć katalog za pomocą następującego polecenia:
Zostanie usunięty cały katalog po 3 / *.
Przykład sudo rm -r Pliki do pobrania / piosenka / *
Zostaną usunięte wszystkie zawarte w nim pliki
Downloads/song
.źródło
Działa to dla mnie idealnie, przetestowałem za każdym razem kilka wariantów.
Z katalogu zawierającego katalog obrazów.
przed:
po:
źródło
mkdir images/.somedir
;touch images/.somefile
)Aby usunąć wszystkie pliki i podkatalogi w bieżącym katalogu, w tym ukryte, bez komunikatu o błędzie :
Lub z katalogu nadrzędnego:
Od https://serverfault.com/a/47940/269538 .
źródło
Inna opcja:
źródło: https://askubuntu.com/a/552834/56648
źródło
Usuń folder „test” i wszystkie pliki w nim:
Usuń wszystkie pliki, ale zachowaj folder „test”:
źródło
cd do folderu, a następnie wykonaj następujące polecenie:
źródło