table of contents
MKTEMP(1) | General Commands Manual | MKTEMP(1) |
NAZWA¶
mktemp
—
twórz unikalną nazwę pliku
tymczasowego
SKŁADNIA¶
mktemp
[-d
]
[-q
] [-u
]
wzorzec
OPIS¶
Narzędzie mktemp
pobiera zadany
wzorzec nazwy i zastępuje jego część by
stworzyć nazwę pliku. Wynikowa nazwa jest unikalna i nadaje
się do używania jako nazwa pliku. Wzorzec może
być dowolną nazwą pliku z dodanymi do niej
dokładnie sześcioma znakami
‘X
’, na przykład
/tmp/temp.XXXXXX. Końcowe
‘X
’ zastępowane są przez
numer bieżącego procesu i/lub unikalną
kombinację liter. Liczba unikalnych nazw plików, jakie
może zwrócić mktemp
daje
około 26 ** 6 kombinacji.
Jeśli mktemp
może
pomyślnie utworzyć unikalną nazwę pliku, to
tworzony jest plik z prawami 0600 (chyba że podano flagę
-u
) zaś nazwa pliku wyświetlana jest
na standardowym wyjściu.
OPCJE¶
Dostępne są następujące opcje:
-d
- Utwórz katalog zamiast pliku.
-q
- Ciche zakończenie działania w przypadku błędu. Przydatne, gdy skrypt nie chce by komunikat o błędzie trafił na standardowe wyjście błędów.
-u
- Działaj w trybie “unsafe” (ryzykownym). Plik
tymczasowy będzie skasowany (unlinked) przed zakończeniem
pracy
mktemp
. Jest to nieco lepsze niżmktemp
(3), ale nadal wprowadza `race condition' [tłum: ``wyścig'' procesów pomiędzy uzyskiwaniem unikalnych nazw i nadawaniem ich plikom]. Nie zaleca się używania tej opcji.
ZWRACANE WARTOŚCI¶
Narzędzie mktemp
kończy
pracę z wartością 0 w przypadku powodzenia, zaś
1 przy błędzie.
PRZYKŁADY¶
Poniższy fragment w sh(1) ilustruje
proste zastosowanie mktemp
, gdzie skrypt winien
zakończyć pracę jeśli nie może
utworzyć bezpiecznego pliku tymczasowego.
TMPFILE=`mktemp /tmp/$0.XXXXXX` || exit 1 echo "program output" >> $TMPFILE
W tym przypadku chcemy, by skrypt sam obsługiwał błąd.
TMPFILE=`mktemp -q /tmp/$0.XXXXXX` if [ $? -ne 0 ]; then echo "$0: Can't create temp file, exiting..." exit 1 fi
Zauważ, że można też zamiast sprawdzania $? sprawdzać, czy $TMPFILE ma długość zerową. Pozwala to na wykonanie sprawdzenia w dalszej części skryptu (gdyż $? zostanie nadpisane przez następne polecenie powłoki).
ZOBACZ TAKŻE¶
HISTORIA¶
Narzędzie mktemp
pojawiło
się w OpenBSD.
20 listopada 1996 | Linux 5.14.0-427.18.1.el9_4.x86_64 |