Qu'est-ce qu'un fichier régulier?


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

Qu'est-ce que cela signifie pour un fichier d'être "régulier" et pourquoi rmtraite-t-il un tel fichier comme un cas spécial?

Réponses:


8

Je suppose que rmc'est un alias, peut-être rm -i. La partie "régulière" ne signifie rien de particulier, cela signifie seulement qu'il ne s'agit pas d'un tuyau, d'un appareil, d'une prise ou de tout autre élément "spécial".


Ah, vous avez raison - il est aliasé rm -i.
Cory Klein du

5
Cela signifie donc quelque chose en particulier. En fait, c'est un aspect très important de l'objet à retirer ...
Bananguin

Comme l'a dit @alexander, cela signifie que le fichier n'est pas un lien symbolique, pipe, rand, null, cpu, etc. Peut-être avez-vous entendu la philosophie de Linux "tout est un fichier texte". Ce n'est pas littéralement vrai, mais cela suggère un contexte opérationnel dominant où les outils de traitement de chaînes peuvent être appliqués directement aux éléments du système de fichiers. Dans ce cas, cela signifie que d'une manière plus littérale. Pour voir l'étape de détection de manière isolée, essayez le fichier de commandes , comme dans file /etc/passwdou file /dev/null.
Joe Atzberger

8

commande de test

Tout fichier qui réussit le test ( -f) est un fichier normal:

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

Si vous parcourez la page de manuel, testvous verrez tous les différents types de fichiers.

commande stat

Vous pouvez également vérifier si un fichier est régulier en utilisant la statcommande:

$ 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

fonction stat ()

Pour en savoir plus sur la différence entre un fichier normal et les autres types possibles, consultez la page de manuel de stat. Assurez-vous de consulter la page de manuel du manuel du programmeur et non la page de manuel de la statcommande réelle .

$ man 2 stat

Cette section présente notamment les différents types de fichiers:

   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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.