通常のファイルとは何ですか?


11
$ rm foobar
rm: remove regular file `foobar'?

ファイルが「通常」であるとはどういう意味rmですか。また、そのようなファイルが特別なケースとして扱われるのはなぜですか。

回答:


8

テストコマンド

テストに合格したファイル(-f)は通常のファイルです。

$ test -f afile.zip && echo regular
regular

manページをtest参照すると、さまざまなタイプのファイルがすべて表示されます。

statコマンド

stat次のコマンドを使用して、ファイルが正規のものかどうかを確認することもできます。

$ stat afile.zip 
  File: `afile.zip'
  Size: 1512        Blocks: 8          IO Block: 4096   regular file
Device: fd02h/64770d    Inode: 10370668    Links: 1
Access: (0664/-rw-rw-r--)  Uid: (  500/    saml)   Gid: (  501/    saml)
Access: 2013-11-07 15:52:06.719632792 -0500
Modify: 2013-11-07 15:52:00.949760104 -0500
Change: 2013-11-07 15:52:00.949760104 -0500

stat()関数

通常のファイルと他の可能なタイプとの違いについて詳しく理解するには、のマニュアルページを参照してくださいstat。実際のstatコマンドのマニュアルページではなく、プログラママニュアルのマニュアルページを必ず確認してください。

$ man 2 stat

このセクションでは特に、さまざまなタイプのファイルを示します。

   The following flags are defined for the st_mode field:

       S_IFMT     0170000   bit mask for the file type bit fields
       S_IFSOCK   0140000   socket
       S_IFLNK    0120000   symbolic link
       S_IFREG    0100000   regular file
       S_IFBLK    0060000   block device
       S_IFDIR    0040000   directory
       S_IFCHR    0020000   character device
       S_IFIFO    0010000   FIFO
       S_ISUID    0004000   set UID bit
       S_ISGID    0002000   set-group-ID bit (see below)
       S_ISVTX    0001000   sticky bit (see below)
       S_IRWXU    00700     mask for file owner permissions
       S_IRUSR    00400     owner has read permission
       S_IWUSR    00200     owner has write permission
       S_IXUSR    00100     owner has execute permission
       S_IRWXG    00070     mask for group permissions
       S_IRGRP    00040     group has read permission
       S_IWGRP    00020     group has write permission
       S_IXGRP    00010     group has execute permission
       S_IRWXO    00007     mask for permissions for others (not in group)
       S_IROTH    00004     others have read permission
       S_IWOTH    00002     others have write permission
       S_IXOTH    00001     others have execute permission

7

rmはおそらくエイリアスであると考えていrm -iます。「通常の」部分は特に何も意味しません。それはそれがパイプ、デバイス、ソケットまたは他の「特別な」ものではないことを意味するだけです。


ああ、あなたは正しい-それはのエイリアスrm -iです。
Cory Klein

5
つまり、それは特に何かを意味します。実際には、削除するオブジェクトの非常に重要な側面です...
Bananguin 2013年

@alexanderが言ったように、これはファイルがシンボリックリンク、パイプ、ランド、null、cpuなどではないことを意味します。おそらくLinuxの哲学「すべてがテキストファイルである」を聞いたことがあるでしょう。これは文字通り真実ではありませんが、文字列処理ツールをファイルシステム要素に直接適用できる主要な運用コンテキストを示唆しています。この場合、それはより文字通りにそれを意味します。検出ステップを個別に確認するには、またはのようにコマンドファイルを試してください。file /etc/passwdfile /dev/null
Joe Atzberger 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.