Một tập tin thường xuyên là gì?


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

Điều đó có nghĩa gì đối với một tệp là "thông thường" và tại sao lại rmcoi một tệp đó là một trường hợp đặc biệt?

Câu trả lời:


8

lệnh kiểm tra

Bất kỳ tệp nào vượt qua bài kiểm tra ( -f) là một tệp thông thường:

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

Nếu bạn xem qua trang hướng dẫn, testbạn sẽ thấy tất cả các loại tệp khác nhau.

lệnh stat

Bạn cũng có thể kiểm tra xem một tệp có thường xuyên hay không bằng cách sử dụng statlệnh:

$ 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

hàm stat ()

Để hiểu thêm về sự khác biệt giữa một tệp thông thường và các loại có thể khác, hãy xem trang hướng dẫn stat. Hãy chắc chắn xem trang man cho hướng dẫn lập trình viên chứ không phải trang man cho statlệnh thực tế .

$ man 2 stat

Phần này đặc biệt hiển thị các loại tệp khác nhau:

   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

Tôi rmcó thể là một bí danh rm -i. Phần "thông thường" không có nghĩa gì đặc biệt, nó chỉ có nghĩa là nó không phải là đường ống, thiết bị, ổ cắm hay bất cứ thứ gì "đặc biệt".


Ah, bạn nói đúng - đó là bí danh rm -i.
Cory Klein

5
Vì vậy, nó có nghĩa là một cái gì đó đặc biệt. Trên thực tế, đó là một khía cạnh rất quan trọng của đối tượng cần được loại bỏ ...
Bananguin

Như @alexander đã nói, nó có nghĩa là tệp không phải là symlink, pipe, rand, null, cpu, v.v. Có lẽ bạn đã nghe triết lý linux "mọi thứ đều là tệp văn bản". Điều này không đúng theo nghĩa đen, nhưng nó cho thấy bối cảnh hoạt động chi phối nơi các công cụ xử lý chuỗi có thể được áp dụng trực tiếp cho các thành phần hệ thống tệp. Trong trường hợp này, nó có nghĩa là theo một nghĩa đen hơn. Để xem bước phát hiện trong sự cô lập, hãy thử tệp lệnh , như trong file /etc/passwdhoặc file /dev/null.
Joe Atzberger
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.