- 论坛徽章:
- 0
|
原帖由 Xorcerer 於 2008-9-19 00:40 發表 ![]()
如題,ls -l得到的是 wrx 這種的權限信息,我想得到一個文件的數字形式保存的權限信息,比如660,並且保存到一個變量裡,請問應該怎麼做?不會是去翻譯那個 wrx串吧?用腳本寫會不會比較笨重?
其實我是想在複製文件的時候,如果目標文件存在,那麼雖然覆蓋目標文件,但是還是保留目標文件的權限設置,包括 s 位。
如:
文件A: /etc/vim/vimrc 664
文件B: /home/logan/vimrc 775
把文件B覆蓋文件B後,新的 /etc/vim/vimrc 的權限還是 664。
一個而已 ?
- cat /etc/vim/vimrc > /home/logan/vimrc
复制代码
所以我想到的笨拙的辦法是先保存權限,再cp,再chmod。
如果有直接點的辦法當然更好,不過我的確想知道怎麼獲得數字形式的文件信息。謝謝。
- #!/usr/bin/perl
- if ( @ARGV == 1 ) {
- $mode = (stat($ARGV[0]))[2];
- printf "%04o\n", $mode & 07777;
- }
复制代码
該 perl 可以這樣用:
那輸出 4755
- perm=$( myperl.pl /bin/su )
- echo $perm
复制代码
-- |
|