Eliminar y recrear carpetas en bash

Eliminar y recrear carpetas en bash

Estoy usando el programa Hazel para ordenar mi carpeta de descargas cada vez que descargo un archivo. Ahora le estoy diciendo que ejecute un script de shell, cada semana, para eliminar todas las carpetas de mi carpeta de descargas y luego volver a crearlas.

¿Existe una manera más sencilla de hacer esto (eliminar carpetas/recrear carpetas) repitiendo cada carpeta en mi carpeta de Descargas y eliminando su contenido?

cd ~/Downloads;
rm -rf Archives;
rm -rf DMGs;
rm -rf Documents;
rm -rf Fonts;
rm -rf Mail\ Attachments;
rm -rf Mobile\ Provisioning;
rm -rf Music;
rm -rf Photoshop;
rm -rf Pictures;
rm -rf Videos;

mkdir Archives;
mkdir DMGs;
mkdir Documents;
mkdir Archives;
mkdir Fonts;
mkdir Mobile\ Provisioning;
mkdir Mail\ Attachments;
mkdir Music;
mkdir Photoshop;
mkdir Pictures;
mkdir Videos;

Respuesta1

Qué tal si:

cd ~/Downloads && rm -rf */*

¿O me estoy perdiendo algo?

Nota: Esto no eliminará los archivos/directorios ocultos inmediatamente debajo del nivel superior.

Respuesta2

Si desea eliminar archivos dejando intacta la estructura completa de carpetas, utilice

find . -type f -print -exec rm '{}' ';'

Si solo necesita intacta la estructura de carpetas de nivel superior, rm -rf */*como otros han sugerido, es bueno

Respuesta3

En realidad es bastante simple, esto lo hará:rm -rf */*

Respuesta4

También puedes ejecutar:

find ~/Downloads -type f -exec rm {} \;

Esto eliminará todos los archivos en ese directorio.

Reemplace rm {} \;con ls -l {} \;antes de ejecutar de verdad para verificar si todo está bien antes de eliminar los archivos.

información relacionada