Linux'taki geçici dizin nerede?


63

Linux'un Windows C:\Tempklasörü gibi genel kullanım için standart bir geçici dizini var mı? Eğer öyleyse, nerede? Programlı bir tmpdizin bulma hakkında bir SO sorusu buldum , ancak önceden bir XML yapılandırma dosyasında geçici bir konum belirlemek istiyorum.


1
Bunun gerçekten kolay bir soru gibi göründüğünü biliyorum, ancak arama yoluyla net ve basit bir cevap bulamadım. Elde ettiğim sonuçların çoğu programa özel geçici dizinler / dosyalar içindi. Birden fazla referans gördüm /tmp, ancak bunun Linux için standart mı yoksa sadece ortak bir kongre mi olduğu konusunda belirsizdiler.
Pops

5
Windows C:\Tempkesinlikle standart değil . Windows 95 zaten %TEMP%işaret etti C:\WINDOWS\Temp.
yerçekimi

Yanıtlar:


91

Dosya Sistemi Hiyerarşi Standart sürüm 3.0 diyor ki:

/ tmp: Geçici dosyalar

/tmpDizin geçici dosyaları gerektiren programlar için hazır olması gerekir.

Programlar /tmp, programın çağrıları arasında bulunan hiçbir dosya veya dizinin korunmuş olduğunu varsaymamalıdır .

gerekçe

IEEE standardı POSIX.1-2008, yukarıdaki bölüme benzer gereksinimleri listeler. Depolanan veriler /tmpsiteye özgü bir şekilde /tmpsilinebilse de, her önyükleme sırasında bulunan dosyaların ve dizinlerin silinmesi önerilir .

FHS bu öneriyi tarihsel emsal ve ortak uygulamalara dayanarak ekledi, ancak sistem yönetimi bu standart kapsamında olmadığı için bir gereklilik getirmedi.

/ var / tmp: Sistemin yeniden başlatılması arasında korunan geçici dosyalar

/var/tmpDizin geçici dosyaları veya sistem yeniden başlatma arasında korunur dizinleri gerektiren programlar için uygun hale getirilir. Bu nedenle, depolanan veriler içeriğindeki verilerden /var/tmpdaha kalıcıdır /tmp.

/var/tmpSistem önyüklendiğinde bulunan dosyalar ve dizinler silinmemelidir. Depolanan veriler /var/tmptipik olarak siteye özgü bir şekilde silinmesine rağmen, silme işlemlerinin olduğundan daha az aralıklarla yapılması önerilir /tmp.

Ayrıca Açık Grup Bazlı Teknik Özellikler Sayı 7, Ortam Değişkenleri aşağıdakilerden bahseder:

TMPDIR Bu değişken, geçici dosyalar oluşturmak için bir yere ihtiyaç duyan programlar için kullanıma sunulan bir dizinin yolunu gösterir.


Standartla tartışmak zor. Teşekkürler!
Pops

11

Bu eski bir soru, bu yüzden bugün mevcut başka bir seçenek var. Linux dağıtımlarına dayanarak systemd(bunların% 90'ı) artık belirli türdeki geçici dosyaları depolamak için $XDG_RUNTIME_DIRdizin ( XDG Temel Dizin Belirtimi ) kullanılabilir. Genellikle yer almaktadır /run/user/$uid. Bu, 700daha iyi güvenlik sağlayan izinlere sahip kullanıcı başına bir dizindir . Bu tmpfsperformans sağlayan bir montajdır. Dezavantajı, tmpfssadece küçük dosya ve soketleri tutmak için kullanılması gerektiğidir.

Bir evlilik olarak bakmak /tmpve /var/run.


Tabii teknoloji 5 yıldan bu yana gelişti
yass

10

Evet / tmp genel kullanım içindir. Buraya ve buraya bakın Dosya Sistemi Hiyerarşisi Standardı.

/ tmp / Geçici dosyalar (ayrıca bkz. / var / tmp). Genellikle sistem yeniden başlatmaları arasında korunmaz.

PDF'de listelenen bazı ayrıntılar ile.


2

Herhangi bir Linux sistemi için çalışacak vaktinden önce tek bir geçici dizin adı seçemezsiniz. Aslında, bunu Windows'ta da yapamazsınız. Wikipedia'nın geçici klasörler hakkındaki makalesine göre , Windows'taki geçici dizin, TEMP ortam değişkeni tarafından belirlenir. c:\TempTEMP'yi başka bir şeye ayarlayan bir Windows sisteminde geçici bir dizin olarak kullanıyor olsaydınız, XML dosyanızı geçici bir dizin seçmek için kullanan herhangi bir program başarısız olur.

Kısacası, sistem geçici dizini, hem Windows hem de UNIX benzeri sistemler dahil, bildiğim tüm modern işletim sistemlerinde ortam tarafından belirlenir. Tek bir statik yolun geçici dizininiz olarak ayarlanması, yalnızca varsayılanlar değiştirilmediği sürece çalışacaktır.

Neyse, tipik bir Linux sistemindeki standart geçici dizin /tmp. Bu eşdeğerdir C:\Tempöyle anlamda sadece varsayılan geçici dizin, evrensel değil. Kullanılabilir olsa bile /tmp, bir kullanıcı (veya sistem) TEMP ortam değişkenini ayarlamışsa, bunun yerine bu değişkenin değeri kullanılmalıdır.

Kullanıcının giriş dizinine göre oluşturabileceğiniz geçici bir dizin seçmeyi deneyebilirsiniz.


Benim durumumda, bence varsayılanların hala yerinde olduğu konusunda güvenli bir varsayım, ancak bu kesinlikle akılda tutulması iyidir.
Pops

Bash, gcc, inkscape veya lynx gibi bazı programlar TMPDIRortam değişkenini kullanır.
Cristian Ciupitu

@Ryan, Neden /tmpgeçici değişkene öncelik veriyor ?
Pacerier

0

İlk soru şuydu: Linux'un standart bir geçici dizini var mı? Eğer öyleyse, nerede? Tmp klasörleri şu adreste bulunur: Dosya Sistemi / tmp ve Dosya Sistemi / var / tmp / tmp içerikleri silinebilir - eğer "gerektiği gibi" çeşitli uygulamalar için hangi dosyaların / klasörlerin gerekli / gerekli olmadığını biliyorsanız temeli. İstenmeyen dosyalar genellikle uygulamanın yalnızca bu noktada kendisini kolaylaştırmak için bir uygulama tarafından indirilen dosyalardır - bu nedenle uygulama yapıldıktan sonra daha fazla gerek duyulmaz. / Var / tmp klasörüne hiç dokunulmamalıdır.


1
Bu cevap, kabul edilen cevaptan daha fazla bilgi sağlamaz, bu yüzden oldukça yararsızdır.
zx485
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.