Android

Jak obciąć (opróżnić) pliki w systemie Linux

Linux #1: Terminal - Operacje na plikach i katalogach

Linux #1: Terminal - Operacje na plikach i katalogach

Spisu treści:

Anonim

W niektórych sytuacjach możesz skrócić (opróżnić) istniejący plik do zera. Krótko mówiąc, obcięcie pliku oznacza usunięcie zawartości pliku bez usuwania pliku.

Obcinanie pliku jest znacznie szybsze i łatwiejsze niż usuwanie pliku, odtwarzanie go i ustawianie odpowiednich uprawnień i praw własności. Ponadto, jeśli plik zostanie otwarty przez proces, usunięcie pliku może spowodować nieprawidłowe działanie programu, który go używa.

W tym samouczku wyjaśniono, jak obcinać pliki do zera w systemach Linux za pomocą przekierowania powłoki i komendy truncate .

Przekierowanie powłoki

Najłatwiejszą i najczęściej stosowaną metodą obcinania plików jest użycie > operatora przekierowania powłoki.

Ogólny format obcinania plików przy użyciu przekierowania to:

: > filename

Złóżmy polecenie:

  • Symbol : dwukropek oznacza true i nie generuje danych wyjściowych. Operator przekierowania > przekierowuje dane wyjściowe poprzedniego polecenia do podanego pliku. filename , plik, który chcesz obciąć.

Jeśli plik istnieje, zostanie obcięty do zera. W przeciwnym razie plik zostanie utworzony.

Zamiast : można również użyć innego polecenia, które nie generuje danych wyjściowych.

Oto przykład użycia komendy cat do wyświetlenia zawartości urządzenia /dev/null , która zwraca tylko znak końca pliku:

cat /dev/null > filename

Kolejnym poleceniem, którego można użyć, jest echo . Opcja -n informuje echo aby nie dodawało nowego wiersza:

echo -n > filename

W większości nowoczesnych powłok, takich jak Bash lub Zsh, możesz pominąć polecenie przed symbolem przekierowania i użyć:

> filename

Aby móc obciąć plik, musisz mieć uprawnienia do zapisu w pliku. Zwykle używasz do tego sudo , ale podwyższone uprawnienia roota nie dotyczą przekierowania. Oto przykład:

sudo: > /var/log/syslog

bash: /var/log/syslog: Permission denied

Istnieje kilka rozwiązań, które pozwalają na przekierowanie z sudo . Pierwsza opcja może uruchomić nową powłokę z sudo i wykonać polecenie wewnątrz tej powłoki przy użyciu flagi -c :

sudo sh -c '> filename'

Inną opcją jest przesłanie danych wyjściowych do polecenia tee , podniesienie uprawnień tee pomocą sudo i zapisanie pustego wyniku w danym pliku:

: | sudo tee filename

truncate polecenie

truncate to narzędzie wiersza polecenia, które pozwala zmniejszyć lub zwiększyć rozmiar pliku do określonego rozmiaru.

Ogólna składnia przycinania plików do zera za pomocą polecenia truncate wygląda następująco:

truncate -s 0 filename

Opcja -s 0 ustawia rozmiar pliku na zero.

Na przykład, aby opróżnić dziennik dostępu Nginx, należy użyć:

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

Opróżnij wszystkie pliki dziennika

Z biegiem czasu dysk może być zapchany dużą ilością dużych plików dziennika, które zajmują dużo miejsca na dysku.

Następujące polecenie opróżni pliki z rozszerzeniem „.log” w katalogu /var/log :

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

Lepszą opcją byłoby obracanie, kompresowanie i usuwanie plików dzienników za pomocą narzędzia logrotate .

Wniosek

Aby obciąć plik w systemie Linux, użyj operatora przekierowania > a następnie nazwy pliku.

obciąć terminal