Android

Paano mag-truncate (walang laman) na mga file sa linux

Linux commands: Truncate a file

Linux commands: Truncate a file

Talaan ng mga Nilalaman:

Anonim

Sa ilang mga sitwasyon, baka gusto mong truncate (walang laman) isang umiiral na file sa isang zero-haba. Sa mga simpleng salita, ang truncating ng isang file ay nangangahulugang pagtanggal ng mga nilalaman ng file nang hindi tinanggal ang file.

Ang pag-truncating ng isang file ay mas mabilis at mas madali kaysa sa pagtanggal ng file, recreating ito, at pagtatakda ng tamang mga pahintulot at pagmamay-ari. Gayundin, kung ang file ay binuksan ng isang proseso, ang pag-alis ng file ay maaaring maging sanhi ng programa na ginagamit ito sa hindi magandang ginagawa.

Ipinapaliwanag ng tutorial na ito kung paano i-truncate ang mga file sa laki ng zero sa mga system ng Linux gamit ang pag-redirect ng shell at utos ng truncate .

Ang Redllection ng Shell

Ang pinakamadali at ginagamit na paraan upang mag-truncate ang mga file ay ang paggamit ng > shell redirection operator.

Ang pangkalahatang format para sa mga truncating file gamit ang redirection ay:

: > filename

Ihiwalay natin ang utos:

  • Ang : colon ay nangangahulugang true at hindi gumagawa ng output.Ang redirection operator > redirect ang output ng naunang utos sa ibinigay na file. filename , ang file na nais mong truncate.

Kung umiiral ang file, ito ay ma-truncated sa zero. Kung hindi man, lilikha ang file.

Sa halip : maaari ring gumamit ng isa pang utos na walang output.

Narito ang isang halimbawa ng paggamit ng utos ng cat upang ma-output ang mga nilalaman ng /dev/null aparato, na nagbabalik lamang ng isang character na end-of-file:

cat /dev/null > filename

Ang isa pang utos na maaaring magamit ay echo . Ang -n pagpipilian ay nagsasabi sa echo huwag magdagdag ng isang bagong linya:

echo -n > filename

Sa karamihan sa mga modernong shell tulad ng Bash o Zsh maaari mong iwasan ang utos bago ang simbolo ng muling pag-redirect.

> filename

Upang makapag-truncate ng isang file, kailangan mong magsulat ng mga pahintulot sa file. Karaniwan, gagamitin mo ang sudo para sa ito, ngunit ang mga mataas na pribilehiyo sa ugat ay hindi nalalapat sa pag-redirect. Narito ang isang halimbawa:

sudo: > /var/log/syslog

bash: /var/log/syslog: Permission denied

Mayroong maraming mga solusyon na nagpapahintulot sa pag-redirect sa sudo . Ang unang pagpipilian ay maaaring magpatakbo ng isang bagong shell na may sudo at magpatupad ng isang utos sa loob ng shell na gamit ang watawat -c :

sudo sh -c '> filename'

Ang isa pang pagpipilian ay ang pipe ang output sa utos ng tee , itaas ang mga pribilehiyo ng tee may sudo , at isulat ang walang laman na output sa isang naibigay na file:

: | sudo tee filename

truncate Command

truncate ay isang utility-line utility na nagbibigay-daan sa iyo upang pag-urong o pahabain ang laki ng isang file sa isang naibigay na sukat.

Ang pangkalahatang syntax para sa truncating file sa zero size na may utos ng truncate , ay ang mga sumusunod:

truncate -s 0 filename

Ang pagpipilian -s 0 set ang laki ng file sa zero.

Halimbawa, upang mawalan ng laman ang log ng pag-access ng Nginx na gagamitin mo:

sudo truncate -s 0 /var/log/nginx/access.log

Walang laman ang Lahat ng Mga File File

Sa paglipas ng panahon, ang iyong disk drive ay maaaring makakuha ng kalat na may maraming mga malalaking file ng log na kumukuha ng malaking halaga ng puwang sa disk.

Ang sumusunod na utos ay walang laman na mga file na nagtatapos sa ".log" sa ilalim ng direktoryo /var/log :

sudo truncate -s 0 /var/log/**/*.log

Ang isang mas mahusay na pagpipilian ay ang pag-ikot, i-compress, at alisin ang mga file ng log gamit ang tool na logrotate .

Konklusyon

Upang truncate ang isang file sa Linux gamitin ang redirection operator > sinusundan ng pangalan ng file.

truncate terminal