Linux для удаления всех файлов каталога

Я хотел бы очистить все файлы из каталога. Я попробовал это:

find myFolderPath/* -exec cat /dev/null > {} ';'

Но это не работает. Как мне это сделать?

Ответ 1

Вы не можете напрямую использовать перенаправление (>) в find -exec потому что это происходит до find -exec команды и создания файла с именем {}. Чтобы обойти это, вам нужно сделать это в новой оболочке, используя sh -c.

Также обратите внимание, что вам не нужно cat/dev/null > file для того, чтобы засорять файл. Вы можете просто использовать > file.

Попробуй это:

find . -type f -exec sh -c '>"{}"' \;

Ответ 2

Это сделает то, что вы хотите:

for f in *; do >$f; done