Skip to content
Related Articles

Related Articles

Shell Script to List Files that have Read, Write and Execute Permissions
  • Last Updated : 20 Apr, 2021

In this article, We will learn how to list all files in the current directory that have Red, Write and Execute permission.

Suppose, we have the following files in our current directory :

Shell Script to List the Files that have Read, Write and Execute Permissions

Here, We have a total of 8 files in our current directory.  Out of 8, we have Read, Write and Execute permission on 6 files and 2 have only Read and Write permissions.

Let’s write the script for List the Files that have Read, Write and Execute Permissions



Approach :

  • We have to check every file in the current directory and display the name that has Read, Write and Execute permission,
  • To traverse through all files, we will use for loop

for file in *

Here, we are using * which represent all files in current working directory and we are storing the current file name on file variable.

  • Now we will check whether the chosen file is actually a file or not using if statement
    • If it is a file, then we will check whether it has Read, Write and Execute permission,
    • We will use an if statement to check all permissions.
      • If the file has all permissions then we will print the file name to the console.
    • Close the if statement
  • If it is not a file, then we will close the if statement and move to the next file.

Before moving forward we will see what these operators do :

  • -f  $file -> returns true if file exists.
  • -r $file -> returns true if file has Read permission
  • -w $file -> returns true if file ha write permission.
  • -x $file -> returns true if file has Executed permission.
  • -a -> it is used for checking multiple conditions, same as && operator.

Below is the implementation:

# 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

Now, our code writing work is done but still, we can’t run our program because when we create a file in Linux, It has two permissions i.e Read and Write for the User who created the file. To execute our file, we must give the Execute permission to the file.

Assigning Execute permission to main.sh:

$ chmod 777 main.sh

Shell Script to List the Files that have Read, Write and Execute Permissions

Use the following command to run the script:

$ bash main.sh

Shell Script to List the Files that have Read, Write and Execute Permissions

My Personal Notes arrow_drop_up
Recommended Articles
Page :