Chcę usunąć wszystkie pliki o podanej nazwie we wszystkich podkatalogach mojego katalogu domowego.
Próbowałem:
rm -r file
w moim katalogu domowym, ale to nie działało, ponieważ ten plik nie istnieje w tym katalogu.
find . -name "filename" -delete
jako rozwinięcie odpowiedzi @ tante, możesz upewnić się, że lista plików jest poprawna przed usunięciem tych plików:
find <source_dir> -name <filename> -print
jeśli kontrola wykaże prawidłową listę, to
find <source_dir> -name <filename> -delete
inna opcja, jeśli chce się tego w wielu katalogach korzystających z tymczasowego katalogu przechowywania:
mkdir <dest_dir>
for i in <list_of_directories>
do
find "$i" -name <filename> -exec /bin/mv {} <dest_dir>
done
# check dest_dir
ls dest_dir
rm -rf <dest_dir>
Jak zawsze, przed wykonaniem upewnij się, że wszystkie skrypty są dokładne, i zawsze przygotuj kopię zapasową na wypadek, gdyby coś poszło nie tak.