Chciałbym usunąć wszystkie katalogi z pwd, ale zostawić pliki w pwd w spokoju. Jeśli zawartość mojego pwd to:
mydir1
mydir2
myfile1
myfile2
wtedy chciałbym zostać
myfile1
myfile2
Zakładam, że muszę użyć rm -r -i
Mam rację?
Nie, to dałoby ci „brakujący operand”, ponieważ niczego nie określiłeś. Wprowadzenie znaku *
zachęci również do plików.
Spróbuję:
find -mindepth 1 -maxdepth 1 -type d -exec rm -r {} \;
mindepth 1
Wykluczy .
od wyników, maxdepth 1
wykluczy próbuje zrobić pod katalogów, które i tak zostaną usunięte (dlatego tworząc ostrzeżenie). Ale w praktyce możesz je pominąć, jeśli zgodzisz się na kilka „niewinnych” ostrzeżeń.
Znalazłem to gdzieś:
rm -r */
Wydaje się najłatwiejszym sposobem. Na przykład musisz potwierdzić każdy przypadek, jeśli masz 5 plików, jest to w porządku, ale przy większych strukturach plików tryb interaktywny nie jest dobrym rozwiązaniem ... Sugerujemy, jeśli jest to ważna informacja, zrób utworzyć kopię zapasową...
Posługiwać się
To pozwala uniknąć trybu interaktywnego i usuwa tylko katalogi z lokalnego katalogu.
źródło
Coś takiego powinno działać:
find /path -type d -exec rm -rf '{}' \;
-type d szuka tylko katalogów
źródło
źródło