4

I am in need of deleting all executable files from a directory. My directory contains some configuration files and executable files, and I need to delete all executable files that I don't want.

For that I have wrote a command like this:

ls -lp | grep -v / | awk 'match($0,"-**x*x*x",a);{print  a[1]}'| \
awk '{print $9}' | xargs rm -f

Is there aother way to do this?

I tried with find. It will list all other sub directory files. I used grep -v /, to avoid sub-directories in the current folder.

2
  • FWIW: your awk approach breaks for filenames with spaces. Use the find solution below. Jul 4, 2016 at 9:13
  • With zsh, this would be as simple as rm *(*).
    – marcelm
    Jul 4, 2016 at 12:09

1 Answer 1

21

You should use find for this task:

find . -type f -executable

will show you the files that are executable by current user, recursively.

To limit the search to current directory only:

find . -maxdepth 1 -type f -executable

To remove:

find . -maxdepth 1 -type f -executable -exec rm {} +

Or with GNU find:

find . -maxdepth 1 -type f -executable -delete

As a side note, if you want to find files executable by any user, not just the current user (set as regular execute permission bits):

find . -type f -perm /111
8
  • 1
    Got it!! great, I tried with find after some time, I stopped that one and started digging into awk!! Thanks! Jul 4, 2016 at 9:16
  • Could you please explain rm {} + meaning in remove command? Jul 4, 2016 at 9:27
  • 1
    @saravanakumar exec rm {} + is find's exec` predicate within which rm is being used to remove the file. {} + will be expanded to the files found by find . -maxdepth 1 -type f -executable
    – heemayl
    Jul 4, 2016 at 9:28
  • and if you wanted to remove those files executables for everyone (instead of being executable only by the current user (eg 750 mode)) you'll use -perm -111 Jul 4, 2016 at 9:48
  • 1
    difference between AND and OR. /111 requires that it is executable by someone (owner OR group OR other can execute it), -111 requires that it is executable by everyone (owner, group, AND other).
    – cas
    Jul 4, 2016 at 11:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.