Shell-Script
Bash 腳本為列表/查找命令中的每個唯一權限創建一個文件並列印該權限的每個目錄/文件路徑實例
我正在嘗試創建一個 bash 腳本,該腳本將能夠執行 find 命令以獲取目錄樹中每個文件/目錄的權限和完整路徑,並為每個唯一權限創建一個文件並將每個完整文件路徑列印到該文件權限文件。然後在將來我可以讀取這些文件並使用它們來獲得執行腳本時的權限。
例如:
drwxrwxrwx /home/user/testDirectory -rwxrwxrwx /home/user/testDirectory/testFile drwxr-xr-x /home/user/testDirectory/directory2 -rwxr-xr-x /home/user/testDirectory/directory2/test2
以上將創建 2 個文件(例如
777.txt
和755.txt
),每個文件都有 2 行。我正在努力為每個唯一權限創建一個文件然後發送完整文件路徑的邏輯。
到目前為止我所擁有的(我懷疑數組是必要的,但我已經通過許可對數組進行排序,我可以在 sort 命令上使用 -k 1.2 來忽略 d 標誌):
declare -a PERMS i=0 while read line do PERMS[$i]="$line" (( i++ )) done < <( find /opt/sas94 -printf ""%M/" "%p/"\n")
試試這個:
#!/bin/bash while read file; do stat -c '%A %n' "$file" >> $(stat -c '%a' "$file").txt done < <(find "$1")
用法:
./script.sh /path/to/directory
- 第一個
stat -c '%A %n' "$file"
列印文件的權限和路徑,例如-rw-rw-rw- /foo/bar
- 第二個
stat -c '%a' "$file"
以八進制形式列印權限,例如666
第一個的輸出
stat
附加到由第二個創建的文件名stat
,後綴為.txt
。