Удаление и повторное создание папок в bash

Удаление и повторное создание папок в bash

Я использую программу hazel для очистки папки загрузок каждый раз, когда загружается файл. Теперь я говорю ей запускать скрипт оболочки каждую неделю, чтобы удалить каждую папку в папке загрузок, а затем создать ее заново.

Есть ли более простой способ сделать это (удаление папок/создание папок заново), повторно пройдя по каждой папке в папке «Загрузки» и удалив ее содержимое?

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;

решение1

Как насчет:

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

Или я что-то упускаю?

Примечание: это не приведет к удалению скрытых файлов/каталогов, расположенных непосредственно под верхним уровнем.

решение2

Если вы хотите удалить файлы, оставив при этом всю структуру папок нетронутой, используйте

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

Если вам нужна только структура папок верхнего уровня, rm -rf */*как предлагали другие, это хорошо

решение3

На самом деле это довольно просто, вот что нужно сделать:rm -rf */*

решение4

Вы также можете запустить:

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

Это приведет к удалению всех файлов в этом каталоге.

Замените rm {} \;на ls -l {} \;перед реальным запуском, чтобы проверить, все ли в порядке, прежде чем удалять файлы.

Связанный контент