Gdzie jest katalog tymczasowy w systemie Linux?


63

Czy Linux ma standardowy katalog tymczasowy do ogólnego użytku, na przykład C:\Tempfolder Windows ? Jeśli tak, to gdzie się znajduje? Znalazłem pytanie SO dotyczące znalezienia tmpkatalogu programowo , ale chcę wcześniej ustawić lokalizację tymczasową w pliku konfiguracyjnym XML.


1
Wiem, że to wygląda na bardzo łatwe pytanie, ale nie mogłem znaleźć jasnej, prostej odpowiedzi poprzez wyszukiwanie. Wiele wyników, które uzyskałem, dotyczyło katalogów / plików tymczasowych specyficznych dla programu. Widziałem wiele odniesień do /tmp, ale były one niejednoznaczne co do tego, czy jest to standard dla Linuksa, czy tylko zwykła konwencja.
— Wyskakuje

5
Windows z C:\Temppewnością nie jest standardem. Windows 95 już %TEMP%wskazywał C:\WINDOWS\Temp.
— grawity

Odpowiedzi:


91

Filesystem Hierarchy Standard wersja 3.0 mówi:

/ tmp: pliki tymczasowe

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

Programy nie mogą zakładać, że /tmpmiędzy wywołaniami programu są zachowane jakiekolwiek pliki lub katalogi .

Racjonalne uzasadnienie

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

FHS dodało to zalecenie na podstawie historycznej precedensu i powszechnej praktyki, ale nie uczyniło go wymogiem, ponieważ administracja systemem nie wchodzi w zakres tego standardu.

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

/var/tmpKatalog jest udostępniony dla programów, które wymagają tymczasowe pliki lub katalogi, które są zachowane pomiędzy ponownym uruchomieniu systemu. Dlatego dane przechowywane w /var/tmpsą bardziej trwałe niż dane w /tmp.

/var/tmpNie można usuwać plików i katalogów znajdujących się w katalogu podczas uruchamiania systemu. Chociaż przechowywane dane /var/tmpsą zazwyczaj usuwane w sposób specyficzny dla witryny, zaleca się, aby usuwanie następowało rzadziej niż /tmp.

Również w Podstawowej specyfikacji Open Group, wydanie 7, Zmienne środowiskowe wymienia się następujące elementy:

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


Trudno kłócić się ze standardem. Dzięki!
— Wyskakuje

11

To stare pytanie, więc dziś dostępna jest inna opcja. Dystrybucje Linuksa, na systemdktórych się opiera (co stanowi 90%), mogą teraz używać $XDG_RUNTIME_DIRkatalogu ( specyfikacja katalogu podstawowego XDG ) do przechowywania określonych typów plików tymczasowych. Zazwyczaj znajduje się na /run/user/$uid. Jest to katalog dla poszczególnych użytkowników z 700uprawnieniami, który zapewnia większe bezpieczeństwo. To jest tmpfsmount, który zapewnia wydajność. Minusem tmpfsjest to, że należy go używać tylko do przechowywania małych plików i gniazd.

Patrzę na to jako na małżeństwo /tmpi /var/run.


Pewna technologia uległa poprawie od 5 lat
— yass

10

Tak / tmp służy do ogólnego użytku. Zobacz tutaj i tutaj W standardowym systemie plików.

/ tmp / pliki tymczasowe (patrz także / var / tmp). Często nie są zachowywane między restartami systemu.

Z kilkoma szczegółami wymienionymi w pliku PDF.


2

Nie możesz wcześniej wybrać jednej nazwy katalogu tymczasowego, która będzie działać dla dowolnego systemu Linux. W rzeczywistości nie można tego zrobić w systemie Windows. Zgodnie z artykułem Wikipedii na temat folderów tymczasowych katalog tymczasowy w systemie Windows jest określany przez zmienną środowiskową TEMP. Jeśli po prostu używasz c:\Tempjako katalogu tymczasowego w systemie Windows, który ustawia TEMP na coś innego, wówczas dowolny program korzystający z pliku XML do wyboru katalogu tymczasowego zawiedzie.

Krótko mówiąc, systemowy katalog tymczasowy jest określany przez środowisko we wszystkich nowoczesnych systemach operacyjnych, które znam, w tym zarówno w systemie Windows, jak i dowolnym systemie podobnym do UNIX. Ustawienie pojedynczej ścieżki statycznej jako katalogu tymczasowego będzie działać tylko tak długo, jak długo wartości domyślne nie zostaną zmienione.

W każdym razie standardowy katalog tymczasowy w typowym systemie Linux to /tmp. Jest to odpowiednik C:\Tempw tym sensie, że jest to tylko domyślny katalog tymczasowy, a nie uniwersalny. Nawet jeśli /tmpjest dostępny, jeśli użytkownik (lub system) ustawił zmienną środowiskową TEMP, 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ć.


W moim przypadku myślę, że jest to bezpieczne założenie, że wartości domyślne są nadal stosowane, ale zdecydowanie warto o tym pamiętać.
— Wyskakuje

Niektóre programy, takie jak bash, gcc, inkscape lub lynx, używają TMPDIRzmiennej środowiskowej.
— Cristian Ciupitu,

@ Ryan, Dlaczego /tmpprzewodniczy zmienna temp?
— Pacerier

0

Początkowe pytanie brzmiało: czy Linux ma standardowy katalog tymczasowy. Jeśli tak, to gdzie się znajduje? Foldery tmp znajdują się w: File System / tmp & File System / var / tmp Zawartość / tmp może zostać usunięta - jeśli wiesz, które pliki / foldery są wymagane / nie są wymagane przez różne aplikacje w „zgodnie z wymaganiami” podstawa. Niepotrzebne pliki to zazwyczaj pliki pobrane przez aplikację, aby ułatwić samą aplikację tylko w tym momencie - dlatego nie są już wymagane po uruchomieniu aplikacji. Nie należy w ogóle dotykać folderu / var / tmp.


1
Ta odpowiedź nie zawiera więcej informacji niż odpowiedź zaakceptowana, więc jest całkiem bezużyteczna.
— zx485
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.