Назад | Перейти на главную страницу

Как найти файл и объединить `find… -exec` и вывести в него пустую строку?

я бы хотел echo пусто для таких типов файлов, например:

bash-3.2$ cat t1.txt
aa
bash-3.2$ cat t2.txt
aa
bash-3.2$ cat t3.txt
aa

Я пытался сделать их пустыми:

$ find /Users/liweijian/Downloads/tmpfiles -name "*.txt" -exec echo ""
> {} \;

Но не работает.

В этом случае проще избежать проблем с цитированием, чтобы перенаправление работало:

Использовать truncate -s 0 как команду для очистки файла. Если его нет, это странно, как и должно быть в coreutils в распространенных дистрибутивах и устанавливается по умолчанию. Попробуйте установить этот пакет, если он действительно отсутствует.

Вы можете сделать это, набрав:

 $ find /Users/liweijian/Downloads/tmpfiles -name "*.txt" -exec sh -c "echo ''
    > {}" \;