Очистить содержимое указанного файла без удаления через командную строку
Если вы работаете в командной строке и вам нужно быстро очистить содержимое файла, вы можете сделать это, поставив перед именем файла символ «больше» и пробел.
Как очистить содержимое файла из командной строки
Хитрость по удалению содержимого файла при сохранении этого файла выглядит следующим образом:
> имя файла
Этот подход работает в bash и многих других оболочках, но вы также можете использовать вариант echo, если он не работает в zsh или другой оболочке. Для zsh используйте следующее, чтобы очистить содержимое файла из командной строки с помощью echo null и перенаправления:
echo -n > имя_файла
Все содержимое в целевом файле будет немедленно удалено без предупреждения, оставив его пустым, сохранив при этом существование файлов, имя файла и права доступа. Часто это предпочтительнее и быстрее, чем удаление и повторное создание файла вручную.
Хорошим практическим примером является очистка содержимого файлов журналов, например:
> ~/Library/Logs/updates.log
Или достижение того же эффекта с перенаправлением эха:
echo -n > ~/Library/Logs/updates.log
Вы также можете использовать эту команду для создания нового 0-байтового файла в этом месте, аналогично использованию команды touch.
Вы обнаружите, что это особенно полезно, если вы хотите сохранить права доступа к данному файлу прежними, но хотите перезаписать содержимое, что обычно происходит с файлами журналов и подобными элементами.