Очистить содержимое указанного файла без удаления через командную строку

Anonim

Если вы работаете в командной строке и вам нужно быстро очистить содержимое файла, вы можете сделать это, поставив перед именем файла символ «больше» и пробел.

Как очистить содержимое файла из командной строки

Хитрость по удалению содержимого файла при сохранении этого файла выглядит следующим образом:

> имя файла

Этот подход работает в bash и многих других оболочках, но вы также можете использовать вариант echo, если он не работает в zsh или другой оболочке. Для zsh используйте следующее, чтобы очистить содержимое файла из командной строки с помощью echo null и перенаправления:

echo -n > имя_файла

Все содержимое в целевом файле будет немедленно удалено без предупреждения, оставив его пустым, сохранив при этом существование файлов, имя файла и права доступа. Часто это предпочтительнее и быстрее, чем удаление и повторное создание файла вручную.

Хорошим практическим примером является очистка содержимого файлов журналов, например:

> ~/Library/Logs/updates.log

Или достижение того же эффекта с перенаправлением эха:

echo -n > ~/Library/Logs/updates.log

Вы также можете использовать эту команду для создания нового 0-байтового файла в этом месте, аналогично использованию команды touch.

Вы обнаружите, что это особенно полезно, если вы хотите сохранить права доступа к данному файлу прежними, но хотите перезаписать содержимое, что обычно происходит с файлами журналов и подобными элементами.

Очистить содержимое указанного файла без удаления через командную строку