2011-09-06 19:43:10 +0000 2011-09-06 19:43:10 +0000
65
65

Gdzie w systemie Linux znajduje się katalog tymczasowy?

Czy Linux posiada standardowy katalog tymczasowy do ogólnego użytku, taki jak folder C:\Temp w Windows? Jeśli tak, gdzie jest on zlokalizowany? Znalazłem pytanie SO o znalezienie katalogu tmp programowo , ale chcę ustawić lokalizację tymczasową w pliku konfiguracyjnym XML z wyprzedzeniem.

Odpowiedzi (5)

97
97
97
2011-09-06 20:09:43 +0000

Standard Hierarchii Systemu Plików ](http://refspecs.linuxfoundation.org/fhs.shtml) wersja 3.0 mówi:

/tmp : Pliki tymczasowe

Katalog /tmp musi być udostępniony dla programów, które wymagają plików tymczasowych.

Programy nie mogą zakładać, że jakiekolwiek pliki lub katalogi w /tmp są zachowywane pomiędzy wywołaniami programu.

Rationale

Standard IEEE POSIX.1-2008 wymienia wymagania podobne do powyższej sekcji. Chociaż dane przechowywane w /tmp mogą być usuwane w sposób specyficzny dla danej lokalizacji, zaleca się, aby pliki i katalogi znajdujące się w /tmp były usuwane przy każdym uruchomieniu systemu.

FHS dodał to zalecenie na podstawie historycznego precedensu i powszechnej praktyki, ale nie uczynił go wymogiem, ponieważ administracja systemem nie jest w zakresie tego standardu.

/var/tmp : Pliki tymczasowe zachowywane pomiędzy restartami systemu

Katalog /var/tmp jest udostępniany dla programów, które wymagają plików tymczasowych lub katalogów zachowywanych pomiędzy restartami systemu. Dlatego dane przechowywane w /var/tmp są bardziej trwałe niż dane w /tmp.

Pliki i katalogi znajdujące się w /var/tmp nie mogą być usuwane po uruchomieniu systemu. Chociaż dane przechowywane w /var/tmp są zwykle usuwane w sposób zależny od miejsca, zaleca się, aby usuwanie odbywało się z mniejszą częstotliwością niż w przypadku /tmp.

Również The Open Group Base Specifications Issue 7, Environment Variables wspomina co następuje:

TMPDIR Ta zmienna powinna reprezentować nazwę ścieżki katalogu udostępnianego programom, które potrzebują miejsca do tworzenia plików tymczasowych.

11
11
11
2017-03-28 17:56:59 +0000

To jest stare pytanie, więc dzisiaj jest dostępna inna opcja. Dystrybucje Linuksa polegające na systemd (czyli 90% z nich) mogą teraz używać katalogu $XDG_RUNTIME_DIR XDG Base Directory Specification ) do przechowywania pewnych typów plików tymczasowych. Zwykle jest on zlokalizowany pod adresem /run/user/$uid. Jest to katalog dla każdego użytkownika z uprawnieniami 700, co zapewnia lepsze bezpieczeństwo. Jest to mocowanie tmpfs, które zapewnia wydajność. Wadą tmpfs jest to, że powinien być używany tylko do przechowywania małych plików i gniazd.

Patrzę na to jak na małżeństwo /tmp i /var/run.

10
10
10
2011-09-06 20:13:09 +0000

Tak /tmp jest do ogólnego użytku. Zobacz tutaj i tutaj O standardzie hierarchii systemu plików.

/tmp/ Pliki tymczasowe (zobacz też /var/tmp). Często nie są zachowywane pomiędzy restartami systemu.

Z kilkoma więcej szczegółami wymienionymi w PDF.

2
2
2
2011-09-06 20:23:58 +0000

Nie możesz wybrać jednej nazwy katalogu tymczasowego z wyprzedzeniem, która będzie działać w każdym systemie Linux. W rzeczywistości, nie możesz tego zrobić również w Windows. Zgodnie z artykułem o katalogach tymczasowych w Wikipedii , katalog tymczasowy w Windows jest określany przez zmienną środowiskową TEMP. Jeśli używałbyś po prostu c:\Temp jako katalogu tymczasowego w systemie Windows, który ustawił TEMP na coś innego, wtedy każdy program używający twojego pliku XML do wyboru katalogu tymczasowego nie powiódłby się.

W skrócie, systemowy katalog tymczasowy jest określany przez środowisko we wszystkich nowoczesnych systemach operacyjnych, jakie znam, włączając w to zarówno Windows, jak i każdy system UNIX-opodobny. Ustawienie pojedynczej statycznej ścieżki jako katalogu tymczasowego będzie działać tylko tak długo, jak długo nie zostaną zmienione wartości domyślne.

W każdym razie, standardowy katalog tymczasowy w typowym systemie Linux to /tmp. Jest to odpowiednik C:\Temp w tym sensie, że jest to tylko domyślny katalog tymczasowy, a nie uniwersalny. Nawet jeśli /tmp jest dostępny, to jeśli użytkownik (lub system) ustawił zmienną środowiskową TEMP, to zamiast niej należy użyć wartości tej zmiennej.

Możesz spróbować wybrać katalog tymczasowy względem katalogu domowego użytkownika, który możesz utworzyć.

0
0
0
2019-07-27 13:18:41 +0000

Początkowe pytanie brzmiało: Czy Linux posiada standardowy katalog tymczasowy. Jeśli tak, to gdzie jest on zlokalizowany? Folder(y) tmp znajdują się w: File System/tmp & File System/var/tmp Zawartość /tmp może być usunięta - jeśli wiesz, które pliki/foldery są wymagane/nie wymagane przez różne aplikacje na zasadzie “as required”. Niewymagane pliki to zazwyczaj te, które są pobierane przez aplikację, aby ułatwić jej działanie w danym momencie - nie są więc wymagane po wykonaniu zadania przez aplikację. Folder /var/tmp nie powinien być w ogóle ruszany.