- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - HP-UX
- >
- Re: list file mode
Categories
Company
Local Language
Forums
Discussions
Knowledge Base
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Forums
Discussions
Discussions
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-24-2006 03:20 PM
01-24-2006 03:20 PM
list file mode
Run ls -l
-rwxr-x--- 1 owner group size date filename
How to get filename in mode 750 instead of
-rwxr-x---
Thanks ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-24-2006 03:23 PM
01-24-2006 03:23 PM
Re: list file mode
Rgds...Geoff
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-24-2006 05:34 PM
01-24-2006 05:34 PM
Re: list file mode
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-24-2006 05:45 PM
01-24-2006 05:45 PM
Re: list file mode
result = cut from 2-4
case result = rwx then mode 700
case result = rw- then mode 600
case result = r-- then mode 400
and so on
result = cut from 5-7
case = rwx then mode 700+70
and so on
Probably some good c programmer on this forum could do this easily.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-24-2006 05:56 PM
01-24-2006 05:56 PM
Re: list file mode
#!/usr/bin/perl
# Input is like permission only = -rwxrw-rw-
while (<>)
{
@arr=split //;
for ($i=1;$i<=3;$i++) {
if ( $arr[$i] =~ /r/ ) {
$own+=4;
}
if ( $arr[$i] =~ /w/ ) {
$own+=2;
}
if ( $arr[$i] =~ /x/ ) {
$own+=1;
}
if ( $arr[$i] =~ /s/ ) {
$own+=1;
$SID+=4;
}
if ( $arr[$i] =~ /S/ ) {
$SID+=4;
}
}
for ($i=4;$i<=6;$i++) {
if ( $arr[$i] =~ /r/ ) {
$group+=4;
}
if ( $arr[$i] =~ /w/ ) {
$group+=2;
}
if ( $arr[$i] =~ /x/ ) {
$group+=1;
}
if ( $arr[$i] =~ /s/ ) {
$group+=1;
$SID+=2;
}
if ( $arr[$i] =~ /S/ ) {
$SID+=2;
}
}
for ($i=7;$i<=9;$i++) {
if ( $arr[$i] =~ /r/ ) {
$other+=4;
}
if ( $arr[$i] =~ /w/ ) {
$other+=2;
}
if ( $arr[$i] =~ /x/ ) {
$other+=1;
}
if ( $arr[$i] =~ /t/ ) {
$other+=1;
$SID+=1;
}
if ( $arr[$i] =~ /T/ ) {
$SID+=1;
}
}
print $SID . $own . $group . $other . "\n";
}
save it as mode.pl
Execution:
# echo "-rwsrwsrw-" | perl mode.pl
6776
# echo "-rwsrwsrwT" | perl mode.pl
7776
Or simply as,
# ls -l
--
Muthu
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-24-2006 06:46 PM
01-24-2006 06:46 PM
Re: list file mode
can I suggest you have a look at:
http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=60179
Previously asked question
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-24-2006 07:25 PM
01-24-2006 07:25 PM
Re: list file mode
if you already use Perl for the task,
why not use Perl's built ins (viz. stat())?
e.g.
you could collect mode bits in a file to mode hash like this
my $dir2stat = '/etc';
my $dh = do { local *DH };
opendir $dh, $dir2stat or die "Cannot opendir(): $!\n";
my %mbits;
map { $mbits{$_} = sprintf '%04o', (stat)[2] & 07777 }
map "$dir2stat/$_",
grep(!/^\.{1,2}/, readdir $dh);
closedir $dh;
For details please refer to "perldoc -f stat".
HTH
Ralph