Che cos'è un file normale?


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

Cosa significa che un file è "normale" e perché lo rmconsidera un caso speciale?

Risposte:


8

Immagino rmsia un alias, forse rm -i. La parte "normale" non significa nulla in particolare, significa solo che non è un tubo, un dispositivo, una presa o qualsiasi altra cosa "speciale".


Ah, hai ragione, è alias rm -i.
Cory Klein,

5
Quindi significa qualcosa in particolare. In realtà è un aspetto molto importante dell'oggetto da rimuovere ...
Bananguin,

Come ha detto @alexander, significa che il file non è un link simbolico, pipe, rand, null, cpu, ecc. Forse hai sentito la filosofia di Linux "tutto è un file di testo". Questo non è letteralmente vero, ma suggerisce un contesto operativo dominante in cui gli strumenti di elaborazione delle stringhe possono essere applicati direttamente agli elementi del filesystem. In questo caso, significa che in un modo più letterale. Per vedere il passaggio di rilevamento in isolamento, provare il file di comando , come in file /etc/passwdo file /dev/null.
Joe Atzberger,

8

comando di prova

Qualsiasi file che supera il test ( -f) è un file normale:

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

Se guardi nella pagina man test, vedrai tutti i vari tipi di file.

comando stat

Puoi anche verificare se un file è regolare usando il statcomando:

$ 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

funzione stat ()

Per capire di più su quale sia la differenza tra un file normale e gli altri tipi possibili, dai un'occhiata alla pagina man per stat. Assicurati di guardare la pagina man per il manuale dei programmatori e non la pagina man per il statcomando effettivo .

$ man 2 stat

Questa sezione in particolare mostra i vari tipi di file:

   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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.