Linux'ta geçici dizin nerededir?

Linux genel kullanım için Windows'un C:\Temp klasörü gibi standart bir geçici dizine sahip mi? Eğer varsa, nerede bulunur? Programatik olarak bir tmp dizini bulma hakkında bir SO sorusu buldum](https://stackoverflow.com/questions/31068/how-do-i-find-the-temp-directory-in-linux), ancak önceden bir XML yapılandırma dosyasında geçici bir konum ayarlamak istiyorum.

Çözüm

Dosya Sistemi Hiyerarşisi Standardı] FHS sürüm 3.0'da şöyle denmektedir:

/tmp : Geçici dosyalar

/tmp dizini, /tmp dizinine ihtiyaç duyan programlar için kullanılabilir hale getirilmelidir. geçici dosyalar.

Programlar /tmp içindeki dosya veya dizinlerin geçici dosyalar olduğunu varsaymamalıdır. programın çağrılması arasında korunur.

Gerekçe

IEEE standardı POSIX.1-2008, yukarıdaki bölüme benzer gereksinimleri listeler. Her ne kadar /tmp içinde saklanan veriler siteye özgü bir şekilde silinebilse de /tmp içinde bulunan dosya ve dizinlerin silinmesi önerilir sistem her başlatıldığında.

FHS bu öneriyi tarihsel emsallere ve yaygın uygulamalara dayanarak eklemiştir uygulama, ancak bunu bir gereklilik haline getirmedi çünkü sistem yönetimi bu standardın kapsamı dahilinde değildir.

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

/var/tmp dizini, aşağıdakileri gerektiren programlar için kullanılabilir hale getirilir sistem arasında korunan geçici dosyalar veya dizinler yeniden başlatılır. Bu nedenle, /var/tmp içinde depolanan veriler, /var/tmp içinde depolanan verilerden daha kalıcıdır. /tmp içindeki veriler.

/var/tmp içinde bulunan dosyalar ve dizinler sistem başlatılır. Her ne kadar /var/tmp içinde saklanan veriler tipik olarak sahaya özgü bir şekilde silinir, silme işlemlerinin /tmpden daha seyrek aralıklarla meydana gelir.

Ayrıca The Open Group Base Specifications Issue 7, Environment Variables aşağıdakilerden bahseder:

TMPDIR Bu değişken, geçici dosyalar oluşturmak için bir yere ihtiyaç duyan programların kullanımına sunulan bir dizinin yol adını temsil edecektir.

Yorumlar (1)

Evet /tmp genel kullanım içindir. Dosya Sistemi Hiyerarşisi Standardı hakkında burada ve burada adreslerine bakın.

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

PDF'de daha fazla ayrıntı listelenmiştir.

Yorumlar (0)

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

Kısacası, sistem geçici dizini hem Windows hem de UNIX benzeri sistemler dahil olmak üzere bildiğim tüm modern işletim sistemlerinde ortam tarafından belirlenir. Geçici dizininiz olarak tek bir statik yol belirlemek yalnızca varsayılanlar değiştirilmediği sürece işe yarayacaktır.

Her neyse, tipik bir Linux sistemindeki standart geçici dizin /tmpdir. Bu dizin C:\Temp dizinine eşdeğerdir, yani sadece varsayılan geçici dizindir, evrensel değildir. /tmp` mevcut olsa bile, eğer bir kullanıcı (ya da sistem) TEMP ortam değişkenini ayarlamışsa, bunun yerine bu değişkenin değeri kullanılmalıdır.

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

Yorumlar (3)