Touch_(UNIX)
[Wikipedia|▼Menu]

touchは、標準的なUnixプログラムであり、ファイルの最終アクセス時刻と最終変更時刻を変えるために使用される。また、新規の空ファイルを作成するためにも使用される。
歴史

touchユーティリティはVersion 7 AT&T UNIXにおいて最初にリリースされた。GNU Core Utilitiesにバンドルされているtouchのバージョンは、ポール・ルビン、アーノルド・ロビンズ、ジム・キングドン、デビッド・マッケンジーおよびスニル・シャーマによって作成された[要出典]。
仕様

Single UNIX Specification(SUS)において、touchはファイルの最終アクセス時刻または最終変更時刻またはその両方を変えるものであると定義されている。ファイルは引数のパス名で指定される。指定したファイルが存在しない場合は、ファイルを新規に作成して、最終アクセス時刻と最終変更時刻を指定した時刻に設定する。時刻を指定しない場合には、touchは現在時刻を使用する。
使用法

SUSにおいて、次のようなオプションが指定されている:-a、最終アクセス時刻のみを変更-c、ファイルが存在しない場合でも、新規に作成せず、状況を報告しない-m、最終変更時刻のみを変更-r file、fileと同じ最終アクセス時刻と最終変更時刻を使用-t time、以下に記載するようなフォーマットで指定した最終アクセス時刻と最終変更時刻を使用

時刻は[[cc]yy]MMDDhhmm[.ss]というフォーマットで指定される。ここで、MMは月を示す2桁の数字、DDは日を示す2桁の数字、hhは時間を示す2桁の数字、mmは分を示す2桁の数字である。オプションのssは秒を示す2桁の数字、ccは西暦の上2桁を示す数字、yyは西暦の下2桁を示す数字である。

オプションで引数に時刻を指定しない場合は、最終アクセス時刻と最終変更時刻として現在の日付と時刻を使用する。この仕様は、ファイルの内容を変更せずに、ファイルの最終アクセス時刻と最終変更時刻を最新にすることに相当する。この動作は、ある種の状況の下では(以下の例に示すように)望ましい仕様と考えられる。

他のUNIXおよびUnix系のオペレーティングシステムにおいては、これ以外のオプションを追加している。例えば、GNU touchは、-dというオプションを追加している。このオプションは、上記のオプションで指定する以外のフォーマットで時刻を指定する。

touchの最も簡単なユースケースは# touch myfile.txt

である。この例では、touchはmyfile.txtの内容を変更せずに、myfile.txtのタイムスタンプのみをコンピューターの現在の日付と時刻に更新する。

次の例は、なぜこのような動作が望ましいのか示す。一般に、作成中のソフトウェアプロジェクトではプログラムをmakeコマンドでビルドすることが多い。その際に、makefileを変更して、makeコマンドで再ビルドする必要があると仮定する。しかし、作業の直後にmakeが以下のような報告をすることがある:# makemake: nothing to be done for `all'

これはソースコードファイルが(ターゲットより以前に)更新されていたからで、touchコマンドでファイルの更新をシミュレートする必要がある。そのようにすると、以下のようにmakeを走らせて、プログラムをリコンパイルできるようになる:# touch project.c# make

以下の例は、ファイルの日付と時刻を変更する方法を示す:# touch -t 200701310846.26 index.html# touch -d '2007-01-31 8:46:26' index.html# touch -d 'Jan 31 2007 8:46:26' index.html# (* Win32(XP)コマンドプロンプトの場合は、シングルクォート(')の 代りにダブルクォート(")を使用せよ。 そうしないと、"touch: Invalid date format"というエラーが 発生するであろう。)

上記の3つの例は同値である。すなわち、index.htmlの日付と時刻を2007年1月31日の午前8時46分26秒に設定する。

cp, grep, chmodなどのコマンドとは異なり、touchはコマンドを再帰的にサブディレクトリに適用する再帰的なスイッチ(-r または -R または両方)を持っていない(2008年8月時点)。しかし、以下のようにすれば適用できる:# find . -exec touch {} \;

この方法は比較的、実行速度が遅い。これは以下のようにすれば高速化できる:# find . 。xargs touch

ファイル名またはサブディレクトリ名に空白が含まれる場合は、以下のようにするとよい:# find . -print0 。xargs -0 touch
他のオペレーティングシステム

touchユーティリティと似た動作をおこなうプログラムが、Microsoft WindowsMac OSなどの他のオペレーティングシステムでも使用可能となっている。
関連項目

システム時刻

外部リンク

Single Unix Specificationで指定されるtouchの仕様
(英語)

ntouch/dtouchのページ(英語)

touchの使い方を示す例(英語)

マニュアル

touch
? GNU coreutilsのマニュアル(英語)

touch ? OpenBSDのマニュアル(英語)

Manpage of TOUCH JM Project

touch(1) man page(SunOS リファレンスマニュアル)

touch(1) man page(HP-UX リファレンス)










Unixコマンド
ファイルとファイルシステム管理

cat

chattr(英語版)

chmod

chown

chgrp

cksum

cmp

cp

dd

du

df(英語版)

file

fsck

fuser(英語版)

ln

ls

lsof

mkdir

mount

mv

pax

pwd

rm

rmdir

size

split

tee

touch

type(英語版)

umask(英語版)

プロセス管理

at

bg

chroot

cron

fg

kill

killall

nice

pgrep

pidof

pkill

ps

pstree(英語版)

reboot

shutdown

time

top

ユーザ管理/環境

clear

env

exit

finger

history(英語版)

id

logname(英語版)

mesg

passwd

su

sudo

uptime

talk

tput(英語版)

uname

w

wall

who

whoami

write

テキスト処理

awk

banner

basename

comm(英語版)

csplit(英語版)

cut

diff

dirname

ed

ex(英語版)

fmt

fold(英語版)

head

iconv

join(英語版)

less

m4

more

nkf

nl

paste(英語版)

patch

printf(英語版)

read(英語版)

sed

sort

spell(英語版)

strings

tail

tr

troff

uniq

vi

wc

xargs

yes

シェルビルトイン

alias

cd

echo

test(英語版)

unset

wait

通信

dig

host(英語版)

ifconfig

inetd

ip (iproute2)

netcat

netstat

nslookup

ping

rdate(英語版)


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:13 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef