什么是常规文件?


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

文件变为“常规”是什么意思,为什么rm将这种文件视为特例?

Answers:


8

我想rm可能是个别名rm -i。“常规”部分没有特别的含义,仅表示它不是管道,设备,插座或任何其他“特殊”部分。


啊,您是对的-别名为rm -i
Cory Klein

5
因此,这确实意味着特别的意义。实际上,这是要删除的对象的一个​​非常重要的方面……
Bananguin

就像@alexander所说的,这意味着该文件不是符号链接,管道,rand,null,cpu等。也许您已经听说过Linux哲学“一切都是文本文件”。从字面上看,这不是正确的,但它暗示了一个主要的操作上下文,在该上下文中可以将字符串处理工具直接应用于文件系统元素。在这种情况下,这意味着以更实际的方式。要单独查看检测步骤,请尝试命令文件,如file /etc/passwd或中所示file /dev/null
Joe Atzberger 2013年

8

测试命令

任何通过测试(-f)的文件都是常规文件:

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

如果浏览手册页,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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.