Advertisement
chotoipho

ch12 ex1.pl - file testing with table

Dec 28th, 2012
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 3.29 KB | None | 0 0
  1. #!/usr/bin/perl -w
  2. use strict;
  3.  
  4. if (! defined(@ARGV)) {
  5.   print "This perl script will grab check the file permissions of a file.\n";
  6.   die "Usage: $0 file1 file2 cron_files* ...\n";
  7.   }
  8.  
  9. printf "=%-40s=%6s=%1s=%1s=%1s=\n", "="x40, "="x6, "=", "=", "=";
  10. printf "|%-40s|%6s|%1s|%1s|%1s|\n", "Filename", "Exists", "r", "w", "x";
  11. printf "=%-40s=%6s=%1s=%1s=%1s=\n", "="x40, "="x6, "=", "=", "=";
  12.  
  13. foreach my $file (@ARGV) {
  14.   &attributes($file);
  15.   }
  16.  
  17. sub attributes {
  18.   my $file = shift @_;
  19. #  print "\$file = $file\n";
  20.   my $exists;
  21.   my $read;
  22.   my $write;
  23.   my $execute;
  24.  
  25.   (-e $file) ? ($exists = "Y") : ($exists = "N");
  26.   (-r _) ? ($read = "Y") : ($read = "-");
  27.   (-w _) ? ($write = "Y") : ($write = "-");
  28.   (-x _) ? ($execute = "Y") : ($execute = "-");
  29.  
  30.   my %attribs = (
  31.     'exists'  => "$exists",
  32.     'read'    => "$read",
  33.     'write'   => "$write",
  34.     'execute' => "$execute",
  35.     );
  36.  
  37. #  foreach (sort keys %attribs) {
  38. #    print "$_ => $attribs{$_}\n";
  39. #  }
  40.  
  41.   return printf "|%-40s|%6s|%1s|%1s|%1s|\n", $file, $attribs{'exists'}, $attribs{'read'}, $attribs{'write'}, $attribs{'execute'} ;
  42.   }
  43.  
  44. printf "=%-40s=%6s=%1s=%1s=%1s=\n", "="x40, "="x6, "=", "=", "=";
  45. print "done.\n";
  46.  
  47.  
  48. =======================================================
  49.  
  50. [user@oc6351860106 ch12]# ./ex1.pl
  51. This perl script will grab check the file permissions of a file.
  52. Usage: ./ex1.pl file1 file2 cron_files* ...
  53. [user@oc6351860106 ch12]# ls -l; ./ex1.pl ./* file7
  54. total 36
  55. -rwxr-xr-x. 1 user user  443 Dec 27 13:59 ex1_answer.pl
  56. -rwxr-xr-x. 1 user user 1187 Dec 28 10:48 ex1.pl
  57. -rwxr-xr-x. 1 root root  637 Dec 27 16:08 ex2.pl
  58. -rwxr-xr-x. 1 user user    0 Dec 27 13:15 file1
  59. ---x--x--x. 1 user user    0 Dec 27 13:15 file2
  60. -rwxrwxrwx. 1 user user    0 Dec 27 13:15 file3
  61. ----------. 1 user user    0 Dec 27 13:15 file4
  62. -r--r--r--. 1 user user    0 Dec 27 13:16 file5
  63. -rwxr-xr-x. 1 user user 1680 Dec 19 10:37 mod_datetime.pl
  64. -rwxr-xr-x. 1 user user  501 Dec 18 21:21 mod_file_basename1.pl
  65. -rwxr-xr-x. 1 user user  292 Dec 18 21:24 mod_file_basename2.pl
  66. -rwxr-xr-x. 1 user user  538 Dec 18 21:35 mod_file_basename3.pl
  67. -rwxr-xr-x. 1 user user  612 Dec 18 21:39 mod_file_spec.pl
  68. --wx-wx-wx. 1 user user 1287 Dec 27 15:11 test1.pl
  69. =======================================================
  70. |Filename                                |Exists|r|w|x|
  71. =======================================================
  72. |./ex1_answer.pl                         |     Y|Y|Y|Y|
  73. |./ex1.pl                                |     Y|Y|Y|Y|
  74. |./ex2.pl                                |     Y|Y|-|Y|
  75. |./file1                                 |     Y|Y|Y|Y|
  76. |./file2                                 |     Y|-|-|Y|
  77. |./file3                                 |     Y|Y|Y|Y|
  78. |./file4                                 |     Y|-|-|-|
  79. |./file5                                 |     Y|Y|-|-|
  80. |./mod_datetime.pl                       |     Y|Y|Y|Y|
  81. |./mod_file_basename1.pl                 |     Y|Y|Y|Y|
  82. |./mod_file_basename2.pl                 |     Y|Y|Y|Y|
  83. |./mod_file_basename3.pl                 |     Y|Y|Y|Y|
  84. |./mod_file_spec.pl                      |     Y|Y|Y|Y|
  85. |./test1.pl                              |     Y|-|Y|Y|
  86. |file7                                   |     N|-|-|-|
  87. =======================================================
  88. done.
  89.  
  90. done.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement