touch(1p)
PROLOG
Denna manualsida är en del av POSIX Programmer's Manual. Linux-implementeringen av detta gränssnitt kan skilja sig åt; se motsvarande Linux-manualsida för detaljer om Linux-beteende. Gränssnittet kan också saknas i vissa Linux-implementationer.
NAMN
touch — ändra filers åtkomsttid och ändringstid
SYNOPSIS
touch [-acm] [-r ref_file|-t time|-d date_time] file...
BESKRIVNING
Verktyget touch ska ändra tidsstämplarna för senaste dataändring, senaste dataåtkomst, eller båda.
Tiden som används kan anges med optionen -t time, med motsvarande tidsfält från filen som anges med -r ref_file, eller med optionen -d date_time, enligt beskrivningen i följande avsnitt. Om ingen av dessa anges ska touch använda aktuell tid.
För varje operand file ska touch utföra åtgärder som motsvarar följande funktioner, definierade i System Interfaces-volymen av POSIX.1-2017:
- Om file inte finns:
- Funktionen creat() anropas med följande argument:
- Operanden file används som argumentet path.
- Värdet av bitvis inkluderande OR av S_IRUSR, S_IWUSR, S_IRGRP, S_IWGRP, S_IROTH och S_IWOTH används som argumentet mode.
- Funktionen futimens() anropas med följande argument:
- Filbeskrivaren som öppnades i föregående steg.
- Åtkomsttiden och ändringstiden, satta enligt beskrivningen i avsnittet OPTIONER, används som första respektive andra elementet i arrayargumentet times.
- Funktionen creat() anropas med följande argument:
- Om file finns anropas funktionen utimensat() med följande argument:
- Specialvärdet AT_FDCWD används som argumentet fd.
- Operanden file används som argumentet path.
- Åtkomsttiden och ändringstiden, satta enligt beskrivningen i avsnittet OPTIONER, används som första respektive andra elementet i arrayargumentet times.
- Argumentet flag sätts till noll.
OPTIONER
Verktyget touch ska följa Base Definitions-volymen av POSIX.1-2017, avsnitt 12.2, Utility Syntax Guidelines.
Följande optioner ska stödjas:
-a
- Ändra åtkomsttiden för file. Ändra inte ändringstiden om inte -m också anges.
-c
- Skapa inte den angivna filen om den inte finns. Skriv inte heller några diagnostiska meddelanden om detta tillstånd.
-d date_time
- Använd den angivna tiden date_time i stället för aktuell tid. Optionsargumentet ska vara en sträng av formen:
YYYY-MM-DDThh:mm:SS[.frac][tz]
- eller:
YYYY-MM-DDThh:mm:SS[,frac][tz]
- där:
- YYYY är minst fyra decimala siffror som anger året.
- MM, DD, hh, mm och SS är som för -t time.
- T är tidsbetecknaren och kan ersättas med ett enda blanksteg.
- [.frac] och [,frac] är antingen tomma, eller en punkt (.) respektive ett kommatecken (,), följt av en eller flera decimala siffror som anger en bråkdel av en sekund.
- [tz] är antingen tom, vilket betyder lokal tid, eller bokstaven Z, vilket betyder UTC. Om [tz] är tom påverkas den resulterande tiden av värdet på miljövariabeln TZ.
- Om den resulterande tiden ligger före epoken är beteendet implementationsdefinierat. Om tiden inte kan representeras som filens tidsstämpel ska touch avslutas omedelbart med felstatus.
-m
- Ändra ändringstiden för file. Ändra inte åtkomsttiden om inte -a också anges.
-r ref_file
- Använd motsvarande tid från filen som anges av sökvägen ref_file i stället för aktuell tid.
-t time
- Använd den angivna tiden time i stället för aktuell tid. Optionsargumentet ska vara ett decimaltal av formen:
[[CC]YY]MMDDhhmm[.SS]
- där varje tvåsiffrigt fält representerar följande:
- MM
- Månaden på året [01,12].
- DD
- Dagen i månaden [01,31].
- hh
- Timmen på dygnet [00,23].
- mm
- Minuten i timmen [00,59].
- CC
- De två första siffrorna i året, alltså seklet.
- YY
- De två sista siffrorna i året.
- SS
- Sekunden i minuten [00,60].
- Både CC och YY är valfria. Om ingen av dem anges antas aktuellt år. Om YY anges men CC inte anges, härleds CC enligt följande:
| Om YY är: | blir CC: |
|---|---|
| [69,99] | 19 |
| [00,68] | 20 |
- Anmärkning: Det förväntas att en framtida version av denna standard ändrar det sekelskifte som härleds från ett tvåsiffrigt årtal. Detta skulle gälla alla kommandon som accepterar ett tvåsiffrigt årtal som indata.
- Den resulterande tiden ska påverkas av värdet på miljövariabeln TZ. Om den resulterande tiden ligger före epoken är beteendet implementationsdefinierat. Om tiden ligger utanför det intervall som kan representeras av filens tidsstämpel ska touch avslutas omedelbart med felstatus. Intervallet för giltiga tider efter epoken är implementationsdefinierat, men det ska åtminstone sträcka sig till tiden 0 timmar, 0 minuter och 0 sekunder den 1 januari 2038, Coordinated Universal Time. Vissa implementationer kan inte representera datum efter den 18 januari 2038, eftersom de använder signed int som lagring för tid.
- Intervallet för SS är [00,60] snarare än [00,59] på grund av skottsekunder. Om SS är 60 och den resulterande tiden, påverkad av miljövariabeln TZ, inte hänvisar till en skottsekund, ska den resulterande tiden vara en sekund efter en tid där SS är 59. Om SS inte ges något värde antas det vara noll.
Om varken optionen -a eller -m anges ska touch bete sig som om både -a och -m hade angetts.
OPERANDER
Följande operand ska stödjas:
file
- En sökväg till en fil vars tider ska ändras.
STANDARDINDATA
Används inte.
INDATAFILER
Inga.
MILJÖVARIABLER
Följande miljövariabler ska påverka körningen av touch:
LANG
- Anger ett standardvärde för internationaliseringsvariabler som är osatta eller tomma. Se Base Definitions-volymen av POSIX.1-2017, avsnitt 8.2, Internationalization Variables, för prioriteten mellan internationaliseringsvariabler som används för att bestämma värden för lokalkategorier.
LC_ALL
- Om denna är satt till ett icke-tomt strängvärde, åsidosätter den värdena för alla andra internationaliseringsvariabler.
LC_CTYPE
- Bestämmer lokalen för tolkning av byteföljder som teckendata, till exempel enkelbyte- kontra flerbytetecken i argument.
LC_MESSAGES
- Bestämmer lokalen som ska användas för att påverka formatet och innehållet i diagnostiska meddelanden som skrivs till standardfel.
NLSPATH
- Bestämmer platsen för meddelandekataloger för hantering av LC_MESSAGES.
TZ
- Bestämmer tidszonen som ska användas vid tolkning av optionsargumentet time. Om TZ är osatt eller tom ska en ospecificerad standardtidszon användas.
ASYNKRONA HÄNDELSER
Standard.
STANDARDUTDATA
Används inte.
STANDARDFEL
Standardfel ska endast användas för diagnostiska meddelanden.
UTDATAFILER
Inga.
UTÖKAD BESKRIVNING
Ingen.
SLUTSTATUS
Följande slutvärden ska returneras:
| Värde | Betydelse |
|---|---|
| 0 | Verktyget kördes utan fel och alla begärda ändringar gjordes. |
| >0 | Ett fel inträffade. |
FÖLJDER AV FEL
Standard.
Följande avsnitt är informativa.
ANVÄNDNING I PROGRAM
Tolkningen av tid antas vara sekunder sedan epoken; se Base Definitions-volymen av POSIX.1-2017, avsnitt 4.16, Seconds Since the Epoch. Det bör noteras att implementationer som följer System Interfaces-volymen av POSIX.1-2017 inte tar hänsyn till skottsekunder när sekunder sedan epoken beräknas. När SS=60 används hänvisar den resulterande tiden alltid till 1 plus sekunder sedan epoken för en tid där SS=59.
Även om optionsargumentet -t time kan ange värden år 1969 definieras fälten för åtkomsttid och ändringstid i termer av sekunder sedan epoken, alltså 00:00:00 den 1 januari 1970 UTC. Därför finns det, beroende på värdet av TZ när touch körs, aldrig mer än några få giltiga timmar år 1969, och det behöver inte finnas några giltiga tider alls år 1969.
Om tidsbetecknaren T ersätts med ett blanksteg för optionsargumentet -d date_time, måste blanksteget citeras för att hindra skalet från att dela upp argumentet.
EXEMPEL
Skapa eller uppdatera en fil med namnet dwc. Den resulterande filen får både senaste dataändringstid och senaste dataåtkomsttid satta till den 12 november 2007 klockan 10:15:30 lokal tid:
touch -d 2007-11-12T10:15:30 dwc
Skapa eller uppdatera en fil med namnet nick. Den resulterande filen får både senaste dataändringstid och senaste dataåtkomsttid satta till den 12 november 2007 klockan 10:15:30 UTC:
touch -d 2007-11-12T10:15:30Z nick
Skapa eller uppdatera en fil med namnet gwc. Den resulterande filen får både senaste dataändringstid och senaste dataåtkomsttid satta till den 12 november 2007 klockan 10:15:30 lokal tid med en bråkdelstidsstämpel på .002 sekunder:
touch -d 2007-11-12T10:15:30,002 gwc
Skapa eller uppdatera en fil med namnet ajosey. Den resulterande filen får både senaste dataändringstid och senaste dataåtkomsttid satta till den 12 november 2007 klockan 10:15:30 UTC med en bråkdelstidsstämpel på .002 sekunder:
touch -d "2007-11-12 10:15:30.002Z" ajosey
Skapa eller uppdatera en fil med namnet cathy. Den resulterande filen får både senaste dataändringstid och senaste dataåtkomsttid satta till den 12 november 2007 klockan 10:15:00 lokal tid:
touch -t 200711121015 cathy
Skapa eller uppdatera en fil med namnet drepper. Den resulterande filen får både senaste dataändringstid och senaste dataåtkomsttid satta till den 12 november 2007 klockan 10:15:30 lokal tid:
touch -t 200711121015.30 drepper
Skapa eller uppdatera en fil med namnet ebb9. Den resulterande filen får både senaste dataändringstid och senaste dataåtkomsttid satta till den 12 november 2007 klockan 10:15:30 lokal tid:
touch -t 0711121015.30 ebb9
Skapa eller uppdatera en fil med namnet eggert. Den resulterande filen får senaste dataåtkomsttid satt till motsvarande tid för filen mark i stället för aktuell tid. Om filen finns ändras inte senaste dataändringstid:
touch -a -r mark eggert
BAKGRUND OCH MOTIVERING
Funktionaliteten hos touch beskrivs nästan helt genom hänvisningar till funktioner i System Interfaces-volymen av POSIX.1-2017. På så sätt undviks dubbelarbete när sådana bieffekter som relationen mellan användar-ID:n, användardatabasen, rättigheter och liknande ska beskrivas.
Det finns några betydande skillnader mellan verktyget touch i denna volym av POSIX.1-2017 och motsvarande verktyg i System V- och BSD-system. De är uppåtkompatibla för historiska program från båda implementationerna:
- I System V finns en tvetydighet när ett sökvägsnamn som är ett decimaltal står först bland operanderna; det behandlas då som ett tidsvärde. I BSD tillåts inget tidsvärde; filer kan endast touch-as till aktuell tid. Konstruktionen -t time löser dessa problem för framtida konforma program. Observera att optionen -t inte är historisk praxis.
- Inkluderingen av sekelsiffrorna CC är också ny. Observera att ett tiosiffrigt time-värde behandlas som om YY, och inte CC, hade angetts. Varningen om intervallet av datum efter epoken inkluderades som ett erkännande av att vissa implementationer inte kan representera datum efter den 18 januari 2038 eftersom de använder signed int som lagring för tid.
Optionen -r lades till eftersom flera kommentarer efterfrågade denna funktion. I ett tidigt förslag kallades denna option -f, men den ändrades eftersom -f används i BSD-versionen av touch med en annan betydelse.
Minst en historisk implementation av touch ökade slutkoden om -c angavs och filen inte fanns. Denna volym av POSIX.1-2017 kräver slutstatus noll om inga fel inträffar.
I tidigare versioner av standarden antogs den första operanden vara en date_time-operand om minst två operander angavs och den första operanden var ett åtta- eller tiosiffrigt decimalt heltal. Denna användning togs bort i denna version av standarden eftersom den tidigare hade markerats som föråldrad.
Formatet -d date_time är en fullständig representation av datum och tid i utökat ISO 8601:2004-format, med valfri decimalpunkt eller kommatecken följt av en sträng siffror efter sekunddelen för att ange bråkdelar av en sekund. Det är inte nödvändigt att känna igen "[+/-]hh:mm" och "[+/-]hh" för att ange andra tidszoner än lokal tid och UTC. Tidsbetecknaren T i det utökade ISO 8601:2004-formatet får ersättas med blanksteg.
FRAMTIDA RIKTNINGAR
Inga.
SE ÄVEN
Base Definitions-volymen av POSIX.1-2017, avsnitt 4.16, Seconds Since the Epoch, kapitel 8, Environment Variables, avsnitt 12.2, Utility Syntax Guidelines, sys_stat.h(0p)
System Interfaces-volymen av POSIX.1-2017: creat(3p), futimens(3p), time(3p), utime(3p)
COPYRIGHT
Delar av denna text är återgivna och reproducerade i elektronisk form från IEEE Std 1003.1-2017, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 7, 2018 Edition, Copyright (C) 2018 by the Institute of Electrical and Electronics Engineers, Inc. och The Open Group. Vid avvikelser mellan denna version och den ursprungliga IEEE- och The Open Group-standarden är den ursprungliga standarden den avgörande referensen. Den ursprungliga standarden kan hämtas online på http://www.opengroup.org/unix/online.html .
Eventuella typografiska eller formateringsfel som förekommer på denna sida har troligen införts vid konverteringen av källfilerna till manualsidesformat. För att rapportera sådana fel, se https://www.kernel.org/doc/man-pages/reporting_bugs.html .
Sidor som hänvisar till denna sida
Sidslut
Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/touch.1p.html
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Datorhjälp hemma som har sponsrat Linux.se med webbhotell.