Geçici dosyaları işlemek için biraz daha taşınabilir bir yol kullanmaktır mktemp
. Geçici dosyalar oluşturacak ve onların yollarını sizin için geri getirecektir. Örneğin:
$ mktemp
/tmp/tmp.zVNygt4o7P
$ ls /tmp/tmp.zVNygt4o7P
/tmp/tmp.zVNygt4o7P
Bir komut dosyasında oldukça kolay bir şekilde kullanabilirsiniz:
tmpfile=$(mktemp)
echo "Some temp. data..." > $tmpfile
rm $tmpfile
Kılavuz sayfasını okuyarak, seçenekleri ihtiyaçlarınıza göre ayarlayabilmelisiniz. Örneğin:
-d
dosya yerine bir dizin oluşturur.
-u
bir isim oluşturur, fakat hiçbir şey yaratmaz.
Kullanarak -u
geçici dizini kolayca alabilir ...
$ tmpdir=$(dirname $(mktemp -u))
Daha fazla bilgiyi mktemp
burada bulabilirsiniz .
Mac OS X ile ilgili düzenleme: Daha önce hiç Mac OSX sistemi kullanmadım, ancak aşağıdaki Tyilo tarafından yapılan açıklamaya göre, Macmktemp
OSX'ler bir şablon (örneğin, Linux'ta isteğe bağlı bir argüman olan) sağlamanızı istiyor gibi görünüyor . Alıntı yapmak:
Şablon, örneğin "X" sayısı eklenmiş herhangi bir dosya adı olabilir /tmp/temp.XXXX
. Sondaki "X'ler", geçerli işlem numarası ve / veya benzersiz bir harf kombinasyonuyla değiştirilir. Mktemp'nin döndürebileceği benzersiz dosya adlarının sayısı, sağlanan "Xs" sayısına bağlıdır; altı "X", 56800235584 (62 ** 6) olası dosya adından 1'inin seçilmesiyle sonuçlanır.
Man sayfası ayrıca, bu uygulamanın OpenBSD man sayfasından ilham aldığını da söylüyor mktemp
. Bu nedenle benzer bir ayrışma OpenBSD ve FreeBSD kullanıcıları tarafından da gözlemlenebilir ( Geçmiş bölümüne bakınız).
Şimdi, muhtemelen fark ettiğiniz gibi, bu, sorunuzda aradığınız geçici dizin de dahil olmak üzere tam bir dosya yolu belirlemenizi gerektirir. Bu küçük sorun, -t
anahtar kullanılarak ele alınabilir . Bu seçenek bir argüman (gerektirecek gibi görünüyor olsa da prefix
), o kadar görünür mktemp
dayanır $TMPDIR
gerektiğinde.
Sonuç olarak, yukarıdaki sonuçları kullanarak aynı sonuçları elde edebilmelisiniz ...
$ tmpdir=$(dirname $(mktemp tmp.XXXXXXXXXX -ut))
Bu çözümü kendim test edemediğim için Mac OS X kullanıcılarından gelen geri bildirimler büyük memnuniyet duyacaktır.
${TMPDIR-/tmp}
Unix beğenileri üzerinde kullanın . geçici dosyalar içinTMPDIR
ne zaman kullanılmayacağını size söyleyen (sistem veya yönetici veya kullanıcı tarafından)/tmp
.