Jak usunąć katalogi, ale nie znajdujące się w nich pliki? Próbowałem następujące:
rm -di /Users/arthur/Desktop/MyFolder
remove /Users/arthur/Desktop/MyFolder? y
rm: /Users/arthur/Desktop/MyFolder: Directory not empty
Jestem na komputerze Mac. BTW, chcę to zrobić automatycznie.
macos
command-line
rm
gadgetmo
źródło
źródło
Odpowiedzi:
Metoda 1 - Najpierw przenieś, a następnie usuń
Po prostu przenieś pliki w górę o jeden katalog, a następnie usuń go. Pozwoli to zachować zawartą hierarchię plików / folderów.
Metoda 2 - Automatyzacja w funkcji powłoki
Możesz umieścić to w funkcji powłoki zdefiniowanej w
~/.bash_profile
:Jak powiedziano wcześniej, spowoduje to usunięcie tylko folderu nadrzędnego, pozostawiając nienaruszoną hierarchię dzieci.
Metoda 3 - Usuwanie rekurencyjne
Jeśli chcesz rekurencyjnie usunąć wszystkie foldery i po prostu zachować pliki w folderze, użyj następujących poleceń:
Pamiętaj, że to zastępuje pliki ze zduplikowanymi nazwami.
Metoda 4 - Usuwanie rekurencyjne ze zduplikowaną świadomością
Wreszcie, jeśli chcesz zachować duplikaty plików, możesz sprawdzić, czy już istnieją. W takim przypadku poprzedzimy je ciągiem liczb losowych. Oczywiście mogą istnieć znacznie bardziej wyrafinowane metody, ale widać, dokąd to zmierza.
Pętla
find
wyjścia jest wyjaśniona tutaj .źródło
rmdr /Users/arthur/Desktop/MyFolder
, zamienia się w to: pomv
. Pytanie brzmi: Czego oczekujesz jako wynik? Czy zduplikowane pliki powinny otrzymać inną nazwę?