📜  列出具有读取、写入和执行权限的文件的 Shell 脚本

📅  最后修改于: 2022-05-13 01:57:32.197000             🧑  作者: Mango

列出具有读取、写入和执行权限的文件的 Shell 脚本

在本文中,我们将学习如何列出当前目录中具有 Red、Write 和 Execute 权限的所有文件。

假设,我们当前目录中有以下文件:

列出具有读、写和执行权限的文件的 Shell 脚本

在这里,我们当前目录中共有 8 个文件。在 8 个文件中,我们有 6 个文件的读取、写入和执行权限,2 个只有读取和写入权限。

让我们为列出具有读、写和执行权限的文件编写脚本



方法 :

  • 我们必须检查当前目录中的每个文件并显示具有读取、写入和执行权限的名称,
  • 为了遍历所有文件,我们将使用for循环
  • 现在我们将使用if语句检查所选文件是否实际上是一个文件
    • 如果它是一个文件,那么我们将检查它是否具有读、写和执行权限,
    • 我们将使用if语句来检查所有权限。
      • 如果文件具有所有权限,那么我们将把文件名打印到控制台。
    • 关闭if语句
  • 如果它不是一个文件,那么我们将关闭 if 语句并移动到下一个文件。

在继续之前,我们将看到这些运算符的作用:

  • -f $file -> 如果文件存在则返回真。
  • -r $file -> 如果文件具有读取权限,则返回 true
  • -w $file -> 如果文件具有写权限,则返回 true。
  • -x $file -> 如果文件具有 Executed 权限,则返回 true。
  • -a -> 用于检查多个条件,与&&运算符相同。

下面是实现:

# Shell script to display list of file names
# having read, Write and Execute permission
echo "The name of all files having all permissions :"
  
# loop through all files in current directory
for file in *
do

# check if it is a file
if [ -f $file ]
then

# check if it has all permissions
if [ -r $file -a -w $file -a -x $file ]
then

# print the complete file name with -l option
ls -l $file

# closing second if statement
fi

# closing first if statement
fi

done

现在,我们的代码编写工作已经完成,但是我们仍然无法运行我们的程序,因为当我们在 Linux 中创建一个文件时,它有两个权限,即创建该文件的用户的读取和写入权限。要执行我们的文件,我们必须授予该文件的执行权限。

为 main.sh 分配执行权限:

$ chmod 777 main.sh

列出具有读、写和执行权限的文件的 Shell 脚本

使用以下命令运行脚本:

$ bash main.sh

列出具有读、写和执行权限的文件的 Shell 脚本